EditText的Android重要事件未在设备上发生

时间:2010-10-05 22:04:55

标签: android event-handling android-edittext

我是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。

我做错了什么?

感谢任何帮助。

1 个答案:

答案 0 :(得分:-1)

onKeyListener仅从硬件键盘接收事件。请改用TextWatcher