在重新创建 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
我刚刚想到使用 Bundle
实例状态来存储在销毁和重新创建 Activity
时不会存储的内容(例如在屏幕旋转时) .我还看到您不需要为每个 View
的基本信息执行此操作,例如 TextView
中的文本,因为系统会为您执行此操作(至少对于那些具有 ID 的视图分配)。参见 http://developer.android.com/training/basics/activity-lifecycle/recreating.html。
但是当我使用 setBackgroundColor()
以编程方式更改 View
的背景颜色时(我使用基本的 View
作为链接到颜色选择器的颜色样本),我发现屏幕旋转时颜色丢失,恢复到原来的设置。我确实有一个分配给 View
.
应该自动保留颜色信息,还是我只是满怀希望,我是否必须单独跟踪并在重新创建 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