android EditText 如何完成输入事件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我想在用户完成编辑EditText时捕获一个事件。

提问于
用户回答回答于

当用户完成编辑时,他/她将按DoneEnter:

((EditText)findViewById(R.id.youredittext)).setOnEditorActionListener(
    new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
    if (actionId == EditorInfo.IME_ACTION_SEARCH ||
            actionId == EditorInfo.IME_ACTION_DONE ||
            event.getAction() == KeyEvent.ACTION_DOWN &&
            event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        if (!event.isShiftPressed()) {
           // the user is done typing. 

           return true; // consume.
        }                
    }
    return false; // pass on to other listeners. 
}
});
用户回答回答于

你可以使用EditText onFocusChange侦听器来检查用户是否已完成编辑:

 ((EditText)findViewById(R.id.youredittext)).setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
    /* When focus is lost check that the text field
    * has valid values.
    */
      if (!hasFocus) {
       validateInput(v);
      }
    }
 });

扫码关注云+社区