Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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/3/android/192.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
Java android-当屏幕方向改变时,监听器丢失_Java_Android_Android Layout - Fatal编程技术网

Java android-当屏幕方向改变时,监听器丢失

Java android-当屏幕方向改变时,监听器丢失,java,android,android-layout,Java,Android,Android Layout,我有一个列表片段,当它被点击时,它会打开一个活动。现在,我的问题是,当屏幕旋转时,我的侦听器丢失了。单击事件没有响应。我已经尝试了android:configChanges,它修复了侦听器问题,但整个活动的布局看起来很奇怪。是否有可能在配置更改时再次设置侦听器?最佳解决方案:使用onSaveInstanceState()处理问题的更好方法。请参阅此链接 No.2:您可以检测到更改,然后通过以下方法进行处理: public void onConfigurationChanged(Configura

我有一个
列表片段
,当它被点击时,它会打开一个
活动
。现在,我的问题是,当屏幕旋转时,我的侦听器丢失了。单击事件没有响应。我已经尝试了
android:configChanges
,它修复了侦听器问题,但整个活动的布局看起来很奇怪。是否有可能在配置更改时再次设置侦听器?

最佳解决方案:使用onSaveInstanceState()处理问题的更好方法。请参阅此链接

No.2:您可以检测到更改,然后通过以下方法进行处理:

public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);

// Checks the orientation
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    Toast.makeText(this, "landscape mode", Toast.LENGTH_SHORT).show();
} else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
    Toast.makeText(this, "portrait mode", Toast.LENGTH_SHORT).show();
  }
}
强制解决方案:如果您不希望在方向更改时回收活动生命周期,则可以将其添加到清单中:

<activity android:name=".YourActivity"
      android:configChanges="orientation|keyboardHidden"
      android:label="@string/app_name">

最后一个是最糟糕的解决方案,但效果很好。
正如我的建议,永远不要使用最后一个,因为你将来不能做任何回收的事情。但对于紧急解决方案,它是好的。

您能发布一些代码来更好地描述您的问题吗?