我的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;
}
};
我使用调试停止在Toast行中不要输入
请帮忙
答案 0 :(得分:2)
你正在做的是听关键事件,这意味着键盘按键等,为此你的代码完全没问题。确保选中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笔记 如果你很好奇为什么即使你按下键盘键也不能正常工作,问题来自于视图没有集中的事实。对于在其中收听键盘事件的视图,首先需要选择它们,这听起来合乎逻辑吗?