当按下软键盘中的"完成"按钮时,如何失去编辑文本的焦点?

SSS*_*SSS 24 android android-softkeyboard android-edittext

我的xml中有7个edittext框.我正在使用OnFocusChangeListener从edittext读取值,我正在使用该值进行计算.我想让我的edittext在我点击软键盘中的完成按钮时失去焦点.所以我可以得到edittext中的值.

ρяσ*_*я K 65

从软键盘点击完成按钮时调用失去焦点的clearFocus方法EditText.这样做:

editText.setOnEditorActionListener(new OnEditorActionListener() {        
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if(actionId==EditorInfo.IME_ACTION_DONE){
            //Clear focus here from edittext
             editText.clearFocus();
        }
    return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

并添加android:imeOptions="actionDone"edittext xml

  • 如果没有其他可聚焦视图,或者相同视图是从顶部开始可以获得焦点的第一个视图,则clearFocus可能无效.来自doc的注释:**_当View清除焦点时,框架试图从顶部开始关注第一个可聚焦的View.因此,如果此视图是从顶部开始可以获得焦点的第一个视图,则将调用与清除焦点相关的所有回调,之后框架将关注此视图._** (6认同)