使用SharedPreferences保存复选框状态

时间:2014-07-18 15:42:58

标签: android eclipse

如何在活动B中保存一个复选框状态,这样当我回到活动A时,它会显示一个合适的响应?

我正在尝试创建一个函数,以便在选中活动B中的复选框状态时,它将返回到A并播放音乐,并且将保存此首选项,以便在应用程序被终止并重新启动时,首选项停留。

3 个答案:

答案 0 :(得分:0)

您可以在SharedPreferences中保存布尔值。这里有清楚的解释:http://developer.android.com/training/basics/data-storage/shared-preferences.html

答案 1 :(得分:0)

在活动B上,您需要设置首选项取决于CheckBox状态

checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        SharedPreferences sharedPref = getBaseContext().getSharedPreferences("mypref", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putBoolean("checked", isChecked);
        editor.commit();
    }
});  

在活动A上,您需要获得优先级值,如下所示

SharedPreferences sharedPref = context.getSharedPreferences("mypref", Context.MODE_PRIVATE);
boolean isChecked = sharedPref.getBoolean("checked", false); // false if it's not exist

答案 2 :(得分:0)

在您的活动B中实施OnSharedPreferenceChangeListener并覆盖onSharedPreferenceChanged方法

这是我的代码

@Override
    public void onSharedPreferenceChanged(SharedPreferences preferences,String arg1) {
        // TODO Auto-generated method stub
        preferences = PreferenceManager.getDefaultSharedPreferences(this);
        checkbox = preferences.getBoolean("checkbox", false);

       if(checkbox){

               //Do your stuff here like playing music

                Log.d("checkbox", "check enabled");
                Intent myIntent = new Intent(ActivityB.this, ActivityA.class);

                startActivity(myIntent);


             }