在重新创建 Activity 时保留视图背景颜色

Preserving View background colour on recreation of Activity

我刚刚想到使用 Bundle 实例状态来存储在销毁和重新创建 Activity 时不会存储的内容(例如在屏幕旋转时) .我还看到您不需要为每个 View 的基本信息执行此操作,例如 TextView 中的文本,因为系统会为您执行此操作(至少对于那些具有 ID 的视图分配)。参见 http://developer.android.com/training/basics/activity-lifecycle/recreating.html

但是当我使用 setBackgroundColor() 以编程方式更改 View 的背景颜色时(我使用基本的 View 作为链接到颜色选择器的颜色样本),我发现屏幕旋转时颜色丢失,恢复到原来的设置。我确实有一个分配给 View.

的 ID

应该自动保留颜色信息,还是我只是满怀希望,我是否必须单独跟踪并在重新创建 Activity 时恢复颜色?

谢谢。

  • 是的,当您直接通过 View.setBackgroundColor() 设置背景颜色时,总是当应用程序更改为横向时,这将替换为默认布局。您应该实施:

    setContentView(R.layout."activitylayoutname");

  • 当然还要在布局上设置背景参数。

已编辑 1: 试试这个 link 来设置背景值:

Setting background colour of Android layout element.

此外,如果您想在活动之间保留其他值,只需重新创建一个 activity:

http://developer.android.com/training/basics/activity-lifecycle/recreating.html