从菜单中的单选按钮上保存实例状态
SaveInstanceState on radiobuttons from menu
我想知道如何使用 SaveInstanceState 来保存 menu_main 中单选按钮的状态,这样即使在应用程序关闭后,它也会保存是否单击按钮。
<group
android:checkableBehavior="single"
android:icon="@drawable/ic_invert_colors_white_24dp"
android:id="@+id/invert"
android:title="Invert">
<item
android:id="@+id/mYellow"
android:orderInCategory="1"
android:title="Amber/Teal"
app:showAsAction="never" />
<item
android:id="@+id/mGreen"
android:orderInCategory="2"
android:title="Green/Mango"
app:showAsAction="never" />
<item
android:id="@+id/mRed"
android:orderInCategory="3"
android:title="Crimson/Indigo"
app:showAsAction="never" />
<item
android:id="@+id/mBlue"
android:orderInCategory="4"
android:title="Blue/Magenta"
app:showAsAction="never" />
</group>
即使应用程序关闭也保存状态
要实现此方案,您必须在 SharedPreferences 中保存状态。
使用下面的代码:
public static void setSharedPrefString(Context context, final String key, final String value){
SharedPreferences radioState = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = radioState.edit();
editor.putString(key, value);
editor.apply();
}
public static String getSharedPrefString(Context context, final String key, final String defaultValue){
SharedPreferences radioState = PreferenceManager.getDefaultSharedPreferences(context);
return radioState.getString(key, defaultValue);
}
将单选按钮的状态保存为键的值。
Key :它可以是任何静态的最终字符串,如 "radioStaste" like Json key.
谢谢。
我想知道如何使用 SaveInstanceState 来保存 menu_main 中单选按钮的状态,这样即使在应用程序关闭后,它也会保存是否单击按钮。
<group
android:checkableBehavior="single"
android:icon="@drawable/ic_invert_colors_white_24dp"
android:id="@+id/invert"
android:title="Invert">
<item
android:id="@+id/mYellow"
android:orderInCategory="1"
android:title="Amber/Teal"
app:showAsAction="never" />
<item
android:id="@+id/mGreen"
android:orderInCategory="2"
android:title="Green/Mango"
app:showAsAction="never" />
<item
android:id="@+id/mRed"
android:orderInCategory="3"
android:title="Crimson/Indigo"
app:showAsAction="never" />
<item
android:id="@+id/mBlue"
android:orderInCategory="4"
android:title="Blue/Magenta"
app:showAsAction="never" />
</group>
即使应用程序关闭也保存状态
要实现此方案,您必须在 SharedPreferences 中保存状态。
使用下面的代码:
public static void setSharedPrefString(Context context, final String key, final String value){
SharedPreferences radioState = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = radioState.edit();
editor.putString(key, value);
editor.apply();
}
public static String getSharedPrefString(Context context, final String key, final String defaultValue){
SharedPreferences radioState = PreferenceManager.getDefaultSharedPreferences(context);
return radioState.getString(key, defaultValue);
}
将单选按钮的状态保存为键的值。
Key :它可以是任何静态的最终字符串,如 "radioStaste" like Json key.
谢谢。