为什么onKey()调用两次? [英] Why is onKey() called twice?
本文介绍了为什么onKey()调用两次?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用这code:
public boolean onKey(View v, int keyCode, KeyEvent event) {
msg = (EditText)findViewById(R.id.msg);
String message = msg.getText().toString();
if(keyCode == 66)
{
//It's hitting here twice.
}
return false;
};
谁能告诉我,为什么它击中两次,当我preSS进入?
Can anyone please tell me why it's hitting twice when I press enter?
推荐答案
OnKey是火两次:第一次键不放,并在第二次为关键了,所以你要筛选:
OnKey is fire twice: the first time for key down, and the second time for key up, so you have to filter:
YOUR_VIEW.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//This is the filter
if (event.getAction()!=KeyEvent.ACTION_DOWN)
return true;
switch (keyCode) {
case KeyEvent.KEYCODE_1 :
MakeToast(1);
break;
case KeyEvent.KEYCODE_2 :
MakeToast(2);
break;
case KeyEvent.KEYCODE_3 :
MakeToast(3);
break;
}
return true;
}
});
这篇关于为什么onKey()调用两次?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文