0

我知道如何從物理鍵盤獲取KeyEvent,但是如何從軟鍵盤獲取它們?如何從EditText軟鍵盤獲得KeyEvent?

此代碼不能用於軟鍵盤的工作:

editText.setOnKeyListener(new View.OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     Toast.makeText(this, Integer.toString(keyCode), Toast.LENGTH_SHORT) 
     return false; 
    } 
}); 

回答

1

也許你需要的TextChangedListener(或使用它作爲替代方法):

TextWatcher textWatcher = new TextWatcher() { 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
    } 
    public void onTextChanged(CharSequence s, int start, int before,int count) {   
    } 
    public void afterTextChanged(Editable s) {     
    }  
}; 
editText.addTextChangedListener(textWatcher); 
0

試試這個

public void onCreate(Bundle savedInstanceState) { 
    ... 
    etField =(EditText)findViewById(R.id.your_edit_text); 

    etField.setOnKeyListener(new OnKeyListener() { 

     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      // register the text when "enter" is pressed 
      if (event.getAction() == KeyEvent.ACTION_DOWN 
      || event.getAction() == KeyEvent.ACTION_UP) { 
      int timesPressed = event.getRepeatCount(); 
      //do something 
     } 
    }); 
} 

OR

EditText.addTextChangedListener(new TextWatcher(){ 
    //do something 
})