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. 如果存在,检查radiogroup的单选按钮,否则null,默认检查radiogroup[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

所以你已经有了一个“默认”设置,如果它为空

看,你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 回答