1

我有一个当它被点击时ListFragment打开的。Activity现在,我的问题是当屏幕旋转时我的听众会丢失。点击事件没有响应。我试过android:configChanges了,它修复了监听器问题,但整个活动的布局看起来很奇怪。在配置更改时再次设置侦听器的任何可能解决方案?

4

1 回答 1

0

最佳解决方案:使用 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">

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

于 2013-09-25T19:24:21.173 回答