Java 你怎么听文本?

Java 你怎么听文本?,java,android,android-edittext,Java,Android,Android Edittext,我有一个EditText。当用户在更改EditText时按Enter键时,我想做点什么。我该怎么做 最简单的方法是: final EditText edittext = (EditText) findViewById(R.id.edittext); edittext.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { // If

我有一个
EditText
。当用户在更改
EditText
时按Enter键时,我想做点什么。我该怎么做

最简单的方法是:

final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.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 key press
          Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
          return true;
        }
        return false;
    }
});

为此,您需要使用TextWatcher。下面是一个关于如何使用和Android API的示例。

首先,创建一个
OnEditorActionListener
(例如,作为私有实例变量):

然后,设置侦听器(即在
onCreate
方法中):


文本监视程序的示例代码

your_edittext.addTextChangedListener(new InputValidator());

    private class InputValidator implements TextWatcher {

        public void afterTextChanged(Editable s) {

        }    
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {                

        }    
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

        }    
    }    
}

另一种选择是:

 your_edittext.addTextChangedListener(new TextWatcher() {

       @Override
       public void afterTextChanged(Editable s) {}

       @Override    
       public void beforeTextChanged(CharSequence s, int start,
         int count, int after) {
       }

       @Override    
       public void onTextChanged(CharSequence s, int start,
         int before, int count) {

       }
      });

不,它不起作用。当用户在编辑文本中键入一些文本时,我需要听键盘上的ENTER键。我不在乎用户何时会触摸屏幕。哦,是的!非常感谢你。这是一个很好的决定。在
BluetoothChat
示例代码中也隐藏了一个如何做到这一点的示例:很抱歉,您的方法更好。谢谢)TextWatcher更重,这是只听回车键时的正确答案。好的,我如何比较字符序列和回车键?
EditText mEditText = (EditText) findViewById(...);
mEditText.setOnEditorActionListener(mEnterListener);
your_edittext.addTextChangedListener(new InputValidator());

    private class InputValidator implements TextWatcher {

        public void afterTextChanged(Editable s) {

        }    
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {                

        }    
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

        }    
    }    
}
 your_edittext.addTextChangedListener(new TextWatcher() {

       @Override
       public void afterTextChanged(Editable s) {}

       @Override    
       public void beforeTextChanged(CharSequence s, int start,
         int count, int after) {
       }

       @Override    
       public void onTextChanged(CharSequence s, int start,
         int before, int count) {

       }
      });