1

グローバル変数:

SharedPreferences prefs;
SharedPreferences.Editor editor;

次の期間に保存onDestory():

editor.putInt("InfType", rgTypeOfInf.getCheckedRadioButtonId()); //saving value

中に呼び出されるonCreate():

rgTypeOfInf = (RadioGroup) mFrame2.findViewById(R.id.rgType);
rgTypeOfInf.check(prefs.getInt("InfType", 2131230725)); //retrieving the value

アプリがロードされたときに、保存された変数が存在するかどうかを確認するにはどうすればよいですかnull。存在する場合は、ラジオ グループのラジオ ボタンをチェックします。それ以外の場合は、デフォルトでラジオnullグループ [0] の位置をチェックしますか?

私のXMLファイル:

    <RadioGroup
        android:id="@+id/rgType"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" >
        <RadioButton
            android:id="@+id/rbBridge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="Bridge" />
        <RadioButton
            android:id="@+id/rbTunnel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Tunnel" />
        <RadioButton
            android:id="@+id/rbHighway"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Highway" />
    </RadioGroup>
4

2 に答える 2

2

したがって、nullの場合、すでに「デフォルト」設定があります

参照してください、rgTypeOfInf.check(prefs.getInt("InfType", 2131230725));存在しない場合、設定のデフォルト値として 2131230725 があります。

したがって、-1 のような値に設定してから、次のように言うことができます。

int type = prefs.getInt("InfType", -1);

if (type == -1){
   //was never set
} else{
  //...
}
于 2013-08-06T19:11:05.787 に答える
1

置く:

int checked = -1;
RadioGroup rg = (RadioGroup) findViewById(R.id.rgType);
for(int i = 0; i < rg.getChildCount(); i++){
  if(((RadioButton)rg.getChildAt(i)).isChecked()){
     checked = i;
  }
}
editor.putInt("InfType", checked);

取得:

int InfType = prefs.getInt("InfType", -1);
RadioGroup rg = (RadioGroup) findViewById(R.id.rgType);
if(InfType > -1) {
  ((RadioButton)rg.getChildAt(InfType)).toggle();
} else{
  ((RadioButton)rg.getChildAt(0)).toggle();
}

テストしていません

使用済み:

http://developer.android.com/guide/topics/ui/controls/radiobutton.html http://developer.android.com/reference/android/content/SharedPreferences.html#getInt(java.lang.String,% 20int)

于 2013-08-06T19:11:42.713 に答える