2015-01-13 116 views
0

我設法保存文本字段,但不知道如何在點擊保存時保存單選按鈕的選定值。Android使用sharedpreferences點擊另一個按鈕時保存單選按鈕值

下面的工作適用於一個字段,但我想爲Sex節省價值。 radiogroup的id是radioSex。

請有人可以幫助我的代碼,因爲ive查看文檔,總是感到困惑或錯誤。

謝謝!

繼承人我的代碼:

public class Settings extends Activity { 
    EditText editText; 
    Button button; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.settings); 
     editText = (EditText) findViewById(R.id.editText); 
     button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new Button_Clicker()); 
     loadSavedPreferences(); 

    } 
    private void loadSavedPreferences() { 
     SharedPreferences sharedPreferences = PreferenceManager 
       .getDefaultSharedPreferences(this); 

     String name = sharedPreferences.getString("savedname", "Your Name"); 
     editText.setText(name); 
    } 

    private void savePreferences(String key, String value) { 
     SharedPreferences sharedPreferences = PreferenceManager 
       .getDefaultSharedPreferences(this); 
     Editor editor = sharedPreferences.edit(); 
     editor.putString(key, value); 
     editor.commit(); 
    } 

    class Button_Clicker implements Button.OnClickListener { 
     public void onClick(View v) { 

      savePreferences("savedname", editText.getText().toString()); 

      finish(); 
     } 
    } 
} 

回答

0

要保存onClick()使用這樣

private void saveGenderInPreference() { 
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
    Editor editor = sharedPreferences.edit(); 

    radioSexGroup = (RadioGroup) findViewById(R.id.radioSex); 
    int selectedId = radioSexGroup.getCheckedRadioButtonId(); 
    if(selectedId == R.id.male_radio_button) 
     editor.putBoolean("is_male", true); 
    else 
     editor.putBoolean("is_male", false); 

    editor.commit(); 
} 

呼叫saveGenderInPreference()方法或當你想保存這一點。

要加載使用這樣的

RadioButton male = (RadioButton)findViewById(R.id.male_radio_button); 
RadioButton female = (RadioButton)findViewById(R.id.female_radio_button); 
if(sharedPreferences.getBoolean("is_male", false)) 
    male.setChecked(true); 
else 
    female.setChecked(true); 

使用此代碼loadSavedPreferences

附: Id R.id.male_radio_button是指示。用你自己的ID在這裏

+0

哪裏,我會添加這個,我做它添加在負載的方法? – Bimal

+0

請參閱編輯。它會給你一個想法。 – Rohit5k2

+0

它用於保存。加載從偏好獲取值並在需要的地方使用它。 – Rohit5k2

0

你可以這樣做:

RadioGroup radiogroup = (RadioGroup) findViewById(R.id.radioSex); 

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
Editor editor = sharedPreferences.edit(); 


radiogroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{ 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 

     switch(checkedId){ 
      case R.id.radio0: 

       editor.putString("sex", "Male"); 
      break; 

      case R.id.radio1: 
       editor.putString("sex", "Female"); 
      break; 

     } 
    } 
}); 
+0

選擇時不需要保存;有一個保存按鈕用於相同的目的。不需要額外的工作。 – Rohit5k2

相關問題