为什么隐藏软键盘后EditText不会失去焦点?
Why doesn't EditText lose focus after soft keyboard is hidden?
隐藏软键盘(用户按下Done/Enter/Search按钮后EditText
如何仍然有焦点?
你能给我解释一下吗?
这是默认的 Android 行为。您可以在按下 Enter 键时调用 view.clearFocus() 来覆盖它。
您的应用和Android软键盘(stock one)是不同的应用进程。虽然 Android 负责 "notifying" 您应用的 EditText
焦点请求 上的软键盘应用, Android 和软键盘应用都不应对您应用的 EditText
焦点变化 负责。您的应用程序有足够的来自软键盘的回调以清除焦点。
- 在您的特定 Activity.
中添加以下代码行
EditText edt_user = findViewById(R.id.edt_user);
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(edt_user,0);
edt_user.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_ENTER)) {
edt_user.clearFocus();
}
return false;
}
});
隐藏软键盘(用户按下Done/Enter/Search按钮后EditText
如何仍然有焦点?
你能给我解释一下吗?
这是默认的 Android 行为。您可以在按下 Enter 键时调用 view.clearFocus() 来覆盖它。
您的应用和Android软键盘(stock one)是不同的应用进程。虽然 Android 负责 "notifying" 您应用的 EditText
焦点请求 上的软键盘应用, Android 和软键盘应用都不应对您应用的 EditText
焦点变化 负责。您的应用程序有足够的来自软键盘的回调以清除焦点。
- 在您的特定 Activity.
中添加以下代码行EditText edt_user = findViewById(R.id.edt_user);
InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE);
imm.showSoftInput(edt_user,0);
edt_user.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if ((event.getAction() == KeyEvent.ACTION_DOWN)
&& (keyCode == KeyEvent.KEYCODE_ENTER)) {
edt_user.clearFocus();
}
return false;
}
});