从菜单中的单选按钮上保存实例状态

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.

谢谢。