我有一个EditText控件。 如果我点击它,软键盘会弹出,但是当我按下“enter/ok/return”时,那么EditText控件仍然有焦点并且键盘向上。
如何关闭软键盘并从中删除焦点?如何在Android上清除焦点并移除键盘?
回答
您可以尝试在布局的另一个元素上执行SetFocus()
。
如果你正在谈论的“输入/ OK /返回”键盘本身的按钮,您可能必须建立在EditText
控制KeyListener
为了知道什么时候到另一个元件上SetFocus()
。
在布局XML文件中,指定您的EditText的imeOption:
android:imeOptions="actionGo"
接下来,在活动的Java文件
mYourEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO) {
// hide virtual keyboard
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mYourEditText.getWindowToken(), 0);
return true;
}
return false;
}
});
凡mYourEditText是一个EditText添加动作监听到你的EditText对象
恩,谢谢。但即时通讯suposed编写imeOpt在布局或编辑文本? 和我在EditorInfo上有错误,有什么想法? – carefacerz 2010-11-22 16:11:56
你能解释一下EditorInfo吗? – carefacerz 2010-11-22 18:54:44
这将关闭键盘,但不会在所有情况下移除焦点。 IE浏览器将要求重点关注可以关注的第一个可用视图。 – lostintranslation 2017-01-31 17:20:05
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
这只会隐藏键盘。它不会消除焦点。 – lostintranslation 2017-01-31 17:20:34
private void hideDefaultKeyboard() {
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
//you have got lot of methods here
}
确保您的EditText XML有:
android:id="@+id/myEditText"
android:imeOptions="actionDone"
然后设置监听到你的EditText(与科特林,并从片段):
myEditText.setOnEditorActionListener({ v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
myEditText.clearFocus()
val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view!!.windowToken, 0)
}
false
})
- 1. 在软键盘上清除AutoCompleteTextView的焦点关闭
- 2. 如何清除软键盘当EditText处于焦点状态时?
- 3. 如何在android中移动键盘的焦点?
- 4. 移除焦点并点击活动 - Jquery
- 5. 如何清除javascript中的焦点?
- 6. 如何清除键盘内存?
- 7. 清除焦点上的空文本
- 8. 如何清除输入搜索而不隐藏键盘? (移动)
- 9. 如何从MyGUI Widget中移除焦点?
- 10. 如何从单一EDITTEXT移除焦点
- 11. 如何在点击左侧和右侧转盘箭头后移除焦点?
- 12. 如何清除React Native中的TextInput焦点? (Android)
- 13. 删除焦点并获得焦点在控件上
- 14. 从FpSpread中移除焦点
- 15. 如何使用AS3清除焦点上的文本字段?
- 16. 当软键盘显示时按下后退按钮时清除焦点EditText
- 17. 如何删除Android示例软键盘?
- 18. 键盘快捷键清除Firebug中的所有断点
- 19. 如何删除键盘上的dataGridView行删除键按? c#
- 20. 关闭输入焦点的Android键盘
- 21. 定制的Android键盘焦点问题
- 22. (安卓)如何清除在某些情况下键盘内存(宏基键盘)
- 23. 在编辑文本中移除焦点
- 24. 如何解除UIWebView上的键盘?
- 25. 如何在屏幕上的键盘和按钮组之间移动焦点?
- 26. 如何在全屏活动的键盘焦点上移动布局
- 27. 如何给弹出键盘焦点Gtk.Window
- 28. 如何将键盘光标/焦点移动到QLineEdit?
- 29. 清除TEXTAREA值点击(聚焦状态)
- 30. Ember输入焦点清除模型值
我明白,这是很多人给出的解决方案,但我不喜欢它,因为而不是input.clearFocus()简单地工作(即从那个输入中清除焦点),你现在必须把焦点放在其他东西上!?这看起来反直觉。 – marienke 2017-04-12 13:45:30