Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何检测用户何时离开EditText?_Android - Fatal编程技术网

Android 如何检测用户何时离开EditText?

Android 如何检测用户何时离开EditText?,android,Android,我希望当用户触摸活动中的其他UI元素(如复选框)或真正触摸活动中EditText之外的任何位置时,EditText会失去焦点,但这不会发生。只有当用户开始键入另一个EditText时,焦点才会更改。例如,当他们单击复选框或单击屏幕的其他区域时,就不是这样了。你能不能在另一个视图的单击事件中强制关闭android软键盘 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVIC

我希望当用户触摸活动中的其他UI元素(如复选框)或真正触摸活动中EditText之外的任何位置时,EditText会失去焦点,但这不会发生。只有当用户开始键入另一个EditText时,焦点才会更改。例如,当他们单击复选框或单击屏幕的其他区域时,就不是这样了。

你能不能在另一个视图的单击事件中强制关闭android软键盘

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

toggle调用实际上就是这样做的——如果它打开,它将关闭,如果它关闭,它将打开

听起来您需要在布局中的所有小部件中添加以下两行内容:

android:focusable="true"
android:focusableInTouchMode="true"
这样,他们都可以接收焦点(通常只有某些人可以),您可以将
onFocusChangeListener
附加到所讨论的编辑文本,您应该可以获得所需的结果


当然,这也可能会破坏您的其他小部件(不知道它们是什么,我不能确定),但值得一试。

可能的重复?。如果这没用,你能把你的问题说得更具体些吗?这不是重复的问题。这与键盘问题略有不同,尽管听起来很相似。在这种情况下,当您执行其他操作时,键盘将消失,但问题是EditText不会失去焦点。因为它没有失去焦点,我不能在我想要的地方改变输入法。这与键盘无关。但它是相似的。它实际上是关于如何检测并使EditText失去焦点。当键盘关闭时,EditText仍然具有焦点。比如说,当键盘关闭时,给其他东西打一个requestFocus呼叫?我如何检测键盘何时关闭?并且知道它刚刚从EditBox中分离出来?也许你是对的,它在某种意义上是关于键盘的,但是我需要知道如何检测键盘的关闭,并且知道它是从特定的编辑文本关闭的,就像其他文本一样?请更新您的答案。