我有一个onkeylistener事件的问题,我的代码是这样的
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.pnt_articulo);
imbAgregarArt = (ImageButton)findViewById(R.id.imbAgregarArt);
imbAgregarArt.setOnKeyListener(key);
}
OnKeyListener key = new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
};我使用debug停止在Toast行中不进入
请帮帮忙
发布于 2012-05-17 01:54:08
您所做的是监听按键事件,即按下键盘之类的事件,因此您的代码完全没有问题。确保选择了ImageButton,然后按任意键,您的Toast将会出现。
由于这是一个非常奇怪的行为,您可能正在寻找一个OnClickListener
....
imbAgregarArt.setOnClickListener(click);
}
OnClickListener click = new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show();
}
};请注意,我们已经将OnKeyListener更改为OnClickListener,第一个监听键盘活动,而第二个监听用户通过点击对象与对象的交互,无论是用手指(按下)还是用触摸板选择或任何设备可以做的事情。
作为sido注释,如果你好奇为什么即使你按下键盘键,另一个也不能工作,问题来自于视图没有聚焦的事实。为了让视图监听其中的键盘事件,首先需要选择它们,这听起来合乎逻辑,对吧?
https://stackoverflow.com/questions/10623841
复制相似问题