1
我想在android中侦听某些关键事件,我将事件侦听器附加到编辑文本。我正在寻找空格键,英镑和@键。由于某些原因,这个事件只能触发空格键和数字键。该函数甚至不会被执行任何其他键......我想知道为什么?是他们的事情,我做错了吗?Android的KeyEvent未注册
package com.stv.mynotes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.StringTokenizer;
public class TestActivity extends AppCompatActivity implements View.OnKeyListener
{
EditText edit_txt;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
edit_txt = (EditText) (findViewById(R.id.test_txt));
edit_txt.setOnKeyListener(this);
}
public boolean onKey(View v,int keyCode,KeyEvent event)
{
int tmpCode = event.getKeyCode();
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
if (tmpCode == KeyEvent.KEYCODE_SPACE)
{
Log.i("Test", "Space pressed:"+tmpCode);
return true;
}
if (tmpCode == KeyEvent.KEYCODE_9)
{
Log.i("Test", "9 pressed:"+tmpCode);
return true;
}
else
{
Log.i("Test","Unknown Down:"+tmpCode);
return false;
}
}
if(event.getAction()==KeyEvent.ACTION_UP)
{
if (tmpCode == KeyEvent.KEYCODE_POUND)
{
Log.i("Test", "Pound pressed:"+tmpCode);
return true;
}
if (tmpCode == KeyEvent.KEYCODE_AT)
{
Log.i("Test", "@ pressed:"+tmpCode);
return true;
}
else
{
Log.i("Test","Unknown UP:"+tmpCode);
return false;
}
}
else
return false;
}
}
这是真的,的KeyEvents只对物理按键,如音量和电源按钮,您的建议是正确的。仅仅使用键输入来监听输入事件已被弃用,现在输入可以来自麦克风...我是用文本观察器来实现它的。 谢谢。 – Wafic