另一个按钮上的Android Saving单选按钮值使用sharedpreferences单击

时间:2015-01-13 22:53:54

标签: android sharedpreferences

我设法保存文本字段,但不知道如何在单击“保存”时保存所选的单选按钮值。

下面适用于某个领域,但我希望为Sex保存价值。无线电组的id是radioSex。

请有人帮我查看代码,因为我看过文档,总是感到困惑或错误。

谢谢!

继承我的代码:

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();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

为此节省使用

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()中调用onClick()方法或想要保存此内容。

要像这样加载

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

中使用此代码

P.S。 ID R.id.male_radio_button是指示性的。在这里使用您自己的ID

答案 1 :(得分: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;

         }
    }
});