Android 在方向更改时维护动态设置视图标记
当我使用setTag动态设置视图的标记时,它在方向更改后不会保留。对两个相关问题的回答这两个答案尤其是-&似乎表明标记在方向更改上保持,如果视图存储在标记中,则内存泄漏意味着它在应该时未被释放-即方向更改。除了实际实现自己的方法外,还有什么方法可以在方向更改后保留视图标记 我已经完成了一个简单的示例,其中标记在方向更改时未保存。第一个按钮用于设置第二个按钮的标签。第二个按钮在单击时显示其当前标记。更改方向时,标记始终为空: 入职前: 职位介绍:Android 在方向更改时维护动态设置视图标记,android,android-view,android-orientation,Android,Android View,Android Orientation,当我使用setTag动态设置视图的标记时,它在方向更改后不会保留。对两个相关问题的回答这两个答案尤其是-&似乎表明标记在方向更改上保持,如果视图存储在标记中,则内存泄漏意味着它在应该时未被释放-即方向更改。除了实际实现自己的方法外,还有什么方法可以在方向更改后保留视图标记 我已经完成了一个简单的示例,其中标记在方向更改时未保存。第一个按钮用于设置第二个按钮的标签。第二个按钮在单击时显示其当前标记。更改方向时,标记始终为空: 入职前: 职位介绍: 我认为标签并不是你真正想要的。考虑使用和保存在活
我认为标签并不是你真正想要的。考虑使用和保存在活动被破坏和重新创建时需要保存的任何数据。
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("tag", message);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(state);
message = state.getString("tag");
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/set_tag"
android:text="Set Tag"
android:freezesText="true"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/display_tag"
android:text="Display Tag"
android:freezesText="true"/>
</LinearLayout>
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("tag", message);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(state);
message = state.getString("tag");
}