Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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 打开屏幕并将屏幕锁定设置为“无”时清空编辑文本_Android - Fatal编程技术网

Android 打开屏幕并将屏幕锁定设置为“无”时清空编辑文本

Android 打开屏幕并将屏幕锁定设置为“无”时清空编辑文本,android,Android,我遇到一个问题,在横向/全屏模式下的EditText在关闭屏幕后变为空,然后在系统屏幕锁定设置为无时打开。键盘保持活动状态,但似乎没有焦点,屏幕上也没有显示文本更新。如果我点击“完成”按钮或旋转到“纵向”,则全屏编辑器将被删除,并且我可以在正常的EditText视图中看到以前输入的文本 我在模拟器和设备上都在JB上复制这个。EditText有一个android:id,我在各种EditText和AutoCompleteTextView配置中发现了这个问题,但只有当系统屏幕锁定设置设置为“无”时才会

我遇到一个问题,在横向/全屏模式下的EditText在关闭屏幕后变为空,然后在系统屏幕锁定设置为无时打开。键盘保持活动状态,但似乎没有焦点,屏幕上也没有显示文本更新。如果我点击“完成”按钮或旋转到“纵向”,则全屏编辑器将被删除,并且我可以在正常的EditText视图中看到以前输入的文本

我在模拟器和设备上都在JB上复制这个。EditText有一个android:id,我在各种EditText和AutoCompleteTextView配置中发现了这个问题,但只有当系统屏幕锁定设置设置为“无”时才会出现。当设置为“滑动”或“模式”时,一切都正常工作,因此我怀疑缺少屏幕锁定是这个问题的根源

我在日历中发现了相同的问题,但在消息传递中没有发现。在横向/全屏模式下编辑SMS消息,然后关闭/打开屏幕时,消息起初显示为空,但过了一秒钟后返回。我查看了下面的源代码,但在onResume()中没有看到任何解决此问题的特殊内容

是否有人知道如何正确地修复此问题,以便在屏幕锁定为“无”时,您可以在横向/全屏模式下编辑文本,关闭屏幕,然后再打开,文本显示与您离开时一样?

作为(希望是)临时修复,我在
onResume()
中包含了以下行,它似乎起到了作用。最初,我尝试仅在IME
为FullScreenMode()
时运行此命令,但在
onResume()
中返回false(在
onPause()中返回true之后)。我想这是问题根源的一部分。当“系统屏幕锁定”为“无”且屏幕已打开时,IME实际上不知道它处于全屏模式

View view = getCurrentFocus();

if (view != null) {
    ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
            .restartInput(view);
}

意思是说,当你将设备纵向更改为横向时,它会删除你的数据,是吗?不,方向更改工作正常。它是关于在全屏横向编辑器中,先关闭屏幕,然后打开屏幕,文本不再显示在编辑器中。这只是当系统屏幕锁定设置为“无”时的问题。当它是任何其他值(如滑块或图案)时,打开屏幕并解锁后,文本将正确显示在编辑器中。