2012-08-28 37 views
0

我的問題是每當我嘗試保存我輸入的內容,特別是在radiogroup中檢查適當的答案時,其他所有內容都已保存,但沒有在組中選擇的單選按鈕。如果我錯過了某些東西,請查看我的代碼。這個問題讓我生氣的日子已經過去了。無法將選定的單選按鈕保存到共享首選項

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方法: 私人無效loadSavedData(){

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

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

} // end of loadSavedData method 

我認爲這裏有一個邏輯錯誤:(

+0

你要乾杯嗎? – nandeesh

+0

此代碼看起來沒問題。你如何讀取保存的值?或者這究竟是不是工作? – Sam

+0

是的。我是。但是當我再次點擊查看保存的數據時,它不會顯示選定的單選按鈕。 –

回答

2

我假設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」。

+0

問題解決了!!!非常感謝@RajV –