android中的文本观察器只能工作一次

时间:2013-07-01 16:56:49

标签: android

我在android中的编辑文本上写了一个关键的监听器。 以下是我的代码:

textview.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // If the event is a key-down event on the "enter"
        // button
        if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
            // Perform action on Enter key press
            if (textview.getText().toString().length() == 15) {
                textvalue = textview.getText().toString();
                textview.setText(replacecardformat());
                textview.clearFocus();
                Log.e(""TAG, "Executed");
                return true;
            } else {
                return false;
            }
        }
        return false;
    }
});

然而,log语句只执行一次。在return语句中出现了一些问题。

1 个答案:

答案 0 :(得分:1)

两个观察结果:

  • 如果您需要在每次文本更改时使用监听器,请使用view.addTextChangedListener(TextWatcher)。 Text Watcher有三种方法:一种是前一种,一种是后一种,另一种是文本更改。我想这就是你要找的东西。更多详情和tutorial you can find here
  • 是您的textview TextView还是EditText?我问,因为只有EditText可以接收键盘输入。但是TextView也可以有这样的倾听者。因为它的文本也可以更改(see documentation here)。