如何在EditText中了解按键

jet*_*ary 30 android android-edittext

我需要在软键盘或硬键盘上检测每个按键EditText.我只需要在按下时一次发送一个字符,不需要最终的文本字符串.

我曾尝试使用EditTextwith onKeyPress,但我遇到了问题,没有用软键盘按键,TextWatcher这不是一个好选择,因为我需要每次按键.是否有任何解决方案可以知道所有按键(包括后退,移位,输入......)?

Har*_*hid 55

如果你有EditText,那么你可以使用该TextWatcher界面.在我的代码中,search_edit是一个EditText.

search_edit.addTextChangedListener(new TextWatcher() {          
    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {                                   
        //here is your code
        myadapter.getFilter().filter(s);
        listview.setAdapter(myadapter); 
    }                       
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub                          
    }                       
    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub                  
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 如果以编程方式更改文本,它是否会触发?这真的是一个关键的新闻事件还是只是一个文本改变事件? (7认同)
  • 那不是答案。 (2认同)

Par*_*ani 7

实施此:

myEditText.setOnKeyListener(new OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_ENTER) { 
            /* do something */ 
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

更新:

正如您想要实现软键监听器一样,您可以实现TextWatcher。这是示例:如何在Android中使用TextWatcher类?

  • 仅适用于硬件密钥。 (7认同)