我对 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;
}
};
我使用调试停止在吐司行不要输入
请帮忙
您正在做的是侦听关键事件,即键盘按下等,为此,您的代码完全没问题。确保选中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
,第一个侦听键盘活动,而第二个通过单击对象来侦听用户与对象的交互,无论是用手指(按下)还是用触控板或设备可以执行的任何操作。
作为西多笔记如果你好奇为什么即使你按下键盘键,另一个也不起作用,问题来自视图没有聚焦的事实。对于在其中侦听键盘事件的视图,首先需要选择它们,这听起来合乎逻辑,对吗?