我的 xml 中有 7 个编辑文本框。我正在使用 OnFocusChangeListener 从 edittext 读取值,并且我正在使用该值进行计算。当我单击软键盘中的完成按钮时,我想让我的 edittext 失去焦点。这样我就可以得到编辑文本中的值。
问问题
24729 次
4 回答
77
从软键盘单击完成按钮时调用失去焦点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;
}
});
并添加android:imeOptions="actionDone"
edittext xml
于 2012-08-16T06:31:48.097 回答
2
如果有人遇到这个问题,想知道如何在他们的活动中一次取消所有焦点,他们可以将焦点设置在父布局(或任何布局)上。
findViewById(R.id.myLayout).requestFocus();
于 2019-01-16T21:28:15.847 回答
0
只是更完整的答案
// This will change the ‘RETURN’ button in your the EditText’s soft keyboard to a ‘DONE’ button.
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
// Use the InputMethodManager to close the soft keyboard
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
InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
return false;
}
});
于 2019-06-06T17:27:19.673 回答
0
Kotlin,它对我有用:
main.clearFocus()
main 是根 ConstraintLayout
于 2019-11-10T14:57:54.250 回答