我是Android开发新手,遇到的问题应该是一个非常简单的任务。我希望每当用户在EditText字段中输入时都会收到KeyEvents,因为我想在每次击键时将输入的值保存到后台的数据结构中。
我在http://developer.android.com/resources/tutorials/views/hello-formstuff.html#EditText的初学者开发指南中模仿了代码并设置了一个OnKeyListener。以下是我的代码片段:
cell.amountEditText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
System.err.println("onKey for Amount, key="+event.getDisplayLabel());
if (event.getAction() == KeyEvent.ACTION_DOWN) {
return onKeyDownInAmount(finalPosition, (EditText)v, keyCode, event);
} else {
return false;
}
}
public boolean onKey(View v, int keyCode, KeyEvent event) {
System.err.println("onKey for Amount, key="+event.getDisplayLabel());
if (event.getAction() == KeyEvent.ACTION_DOWN) {
return onKeyDownInAmount(finalPosition, (EditText)v, keyCode, event);
} else {
return false;
}
}
模拟器上的行为充其量只是参差不齐,有时它会为虚拟键盘提供KeyEvents,有时却不会。当我在我的设备上安装应用程序(仅具有虚拟键盘的HTC Hero)时,没有任何事件触发。我从来没有收到过一个KeyEvent。
我做错了什么?
感谢任何帮助。