每当我按下一个键来启动烤面包时,我都在尝试,但是好像没有启动它,有什么主意吗?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.txtKey);
editText = findViewById(R.id.etxtKeyboard);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_P:
Toast.makeText(this, "P pressed", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onKeyUp(keyCode, event);
}
}
答案 0 :(得分:1)
如Android文档所述有关Activity.onKeyUp()
方法:
在释放键且未被任何视图处理时调用 活动内部。因此,例如,当光标 在TextView内部不会触发事件(除非它是 导航到另一个对象),因为TextView处理自己的键 按下。
因此,看来findViewById(R.id.etxtKeyboard);
编辑文本视图中的焦点时,您试图捕获onKeyUp()事件。
您可以尝试在Activity.onCreate()
中添加这样的代码:
editText.setOnKeyListener(
new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_P:
Toast.makeText(MyActivity.this, "P pressed", Toast.LENGTH_SHORT).show();
return true;
default:
return false;
}
}
}
);