android - 如何在android上捕获KeyEvents?

标签 android keyevent

我需要监听 EditText 上的事件

  1. 当用户开始输入时
  2. 当焦点丢失时

我尝试了这个,但不起作用。我哪里搞错了?

etTo.setOnKeyListener(new OnKeyListener(){

    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if(event.getAction() ==KeyEvent.ACTION_DOWN){
            etTo.setText("");
        }
    return false;
    }           
});

最佳答案

对于第一个,你可以尝试这个:

   myEditText.addTextChangedListener(new TextWatcher() {
 public void afterTextChanged(Editable s) {
   //do something
}

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

public void onTextChanged(CharSequence s, int start, int before, int count) { 
   //do something
}
});

对于第二个尝试这个:

     myEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {

            yourcalc();

            return true;
        }
        return false;
    }
});

关于android - 如何在android上捕获KeyEvents?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9277124/

相关文章:

java - 从 Java 中的单独进程捕获击键

java - 如何使键事件与单个文本字段一起工作

javascript - 为什么触发 F11 按下事件不起作用?

android - 将 LiveData 更改为 "redo"在 ViewModel 中工作

Android 设计库 23.1.0 NavigationView

java - View 的 animate() 无法正常工作

java - 如果窗口不在顶部,则听击键

android如何做一个select和where join语句

android - 如何在android中使用intent仅选择sqlite db文件

java - 如何忽略Swing中的按键事件?