无法将所选单选按钮保存到共享首选项

时间:2012-08-28 17:30:31

标签: android

我的问题是每当我尝试保存我输入的内容时,特别是在一个放射组中检查适当的答案,其他一切都被保存但不是组中选定的单选按钮。如果我遗漏了什么,请查看我的代码。这个问题让我很生气。

private void saveData(){

     //get entered value and set to a variable
     String fname_input = fnametext.getText().toString();
     int checkedButton = gendertext.getCheckedRadioButtonId();


     //SAVE shared pref value
     SharedPreferences.Editor editor = settings.edit();
     editor.putString("fname", fname_input);
     editor.putInt("gender", checkedButton);
     editor.commit();

     //show button after saving
     Toast.makeText(Profile_Pref.this, 
                "You have successfully saved!",
                Toast.LENGTH_SHORT)
                .show();

 } // end of saveData method

感谢您的帮助!

我的loadSavedData方法:          private void loadSavedData(){

    //RETRIEVE/load the saved shared pref value
     String fname = settings.getString("fname", null);

      fnametext.setText( fname );
      gendertext.setSelected(true);

 }   // end of loadSavedData method

我认为这里存在逻辑错误:(

1 个答案:

答案 0 :(得分:1)

我假设gendertext是RadioGroup。

loadSavedData()需要检查右侧的单选按钮。

private void loadSavedData(){
    //RETRIEVE/load the saved shared pref value
    String fname = settings.getString("fname", null);

    fnametext.setText( fname );

    gendertext.check(settings.getInt("gender", 0));
}  

另外,您不应该在首选项中存储视图ID。他们将来可以改变。而是存储性别值,例如“M”和“F”。