我有一个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. 如何清除软键盘当EditText处于焦点状态时?
- 4. android键盘焦点
- 5. 焦点WPF元素被删除时,键盘焦点在哪里?
- 6. 按下“向下”(隐藏键盘)按钮时清除TextView焦点
- 7. 如何在android中移动键盘的焦点?
- 8. 移除焦点并点击活动 - Jquery
- 9. Android:清除编辑文本时清除键盘输入
- 10. EditText上移除焦点,如果的setText()
- 11. 如何清除javascript中的焦点?
- 12. 如何清除键盘内存?
- 13. 清除焦点上的空文本
- 14. Phonegap清除输入焦点
- 15. 清除键盘上的文本框
- 16. 清除键盘缓冲器
- 17. 如何清除输入搜索而不隐藏键盘? (移动)
- 18. 如何从单一EDITTEXT移除焦点
- 19. 如何从MyGUI Widget中移除焦点?
- 20. 聚焦在UITableView外部以移除键盘
- 21. 如何在点击左侧和右侧转盘箭头后移除焦点?
- 22. 如何更改ime键盘焦点键?
- 23. 删除焦点并获得焦点在控件上
- 24. 如何清除React Native中的TextInput焦点? (Android)
- 25. 如何从android中的微调器清除焦点?
- 26. 从FpSpread中移除焦点
- 27. 使用jQuery清除焦点上的输入并返回模糊
- 28. 在Ada中清除键盘缓冲区
- 29. 如何首次清除焦点上的输入?
- 30. 如何使用AS3清除焦点上的文本字段?
我明白,这是很多人给出的解决方案,但我不喜欢它,因为而不是input.clearFocus()简单地工作(即从那个输入中清除焦点),你现在必须把焦点放在其他东西上!?这看起来反直觉。 – marienke 2017-04-12 13:45:30