Android 屏幕在方向改变时变黑; onConfigurationChanged 被调用

标签 android android-activity

当我的 Activity (带有两个选项卡的选项卡 Activity )的方向发生变化时,选项卡的内容(这是另一个具有项目 ListView (带有复选框)的 Activity )变为空白。我在 list 文件中使用了 android:configChanges="screenSize|orientation",因此我不希望在方向更改时清除(或重新创建)复选框。

谁能帮我解决这个问题?

最佳答案

为了在 Android 的 Activity 中保存 View 的状态,您需要实现 onSaveInstanceState(Bundle outState)onRestoreInstanceState(Bundle savedInstanceState) 方法。查看Android Developer Guide有关这些方法的更多信息。

onSaveInstanceState(Bundle outState) 在配置更改(方向更改)时销毁 Activity 时调用。您可以使用此方法将数据添加到包中,然后在 Activity 重新启动时使用 onRestoreInstanceState(Bundle savedInstanceState) 检索数据。

例如:

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    // Read values from the "savedInstanceState" bundle and put them back into the corresponding textviews
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    // Save the values you need from your textviews into the outState object
}

有关如何将数据保存到包中的更多详细信息,请参阅 Android Developer Guide .这也解释了使用 onCreate(Bundle savedInstanceState)onRestoreInstanceState(Bundle savedInstanceState) 恢复状态的区别。

关于Android 屏幕在方向改变时变黑; onConfigurationChanged 被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16162798/

相关文章:

java - Android:从 UncaughtExceptionHandler 继续工作

android - 如何区分调用 Activity 的 onPause() 的不同原因?

android - 将下载的 native 库放在 Android 中的最佳位置是什么?

android - 有没有办法判断使用什么技术来构建 Android 应用程序?

android - admob 未在应用程序(模拟器或设备)中显示

安卓 : Full Screen Activity with Title bar

android - 通过 XML 添加 fragment 与以编程方式添加 fragment 有什么优势?

android - 使用 Android 的 TextView 的 FindViewById 上的 NulPointer 异常

c# - 画图 : Canvas is not drawing bitmap

安卓NDK : Module main depends on undefined modules: SDL2