在SharedPreferences中有多个首选项用于复选框

时间:2016-11-10 21:00:33

标签: android checkbox sharedpreferences

如何为每个复选框设置单独的首选项,以保存是否单击了它?我有一个适用于一个的代码,我可以重复它,使其适用于每个,但我觉得我应该能够改变它,所以我没有那么多重复代码。

在onCreate

CheckBox checkbox = (CheckBox) findViewById(R.id.description);
    CheckBox checkbox1 = (CheckBox) findViewById(R.id.description1);

    SharedPreferences sharedPref = getSharedPreferences("mypref", MODE_PRIVATE);
    SharedPreferences sharedPref1 = getSharedPreferences("mypref1", MODE_PRIVATE);
    boolean checked = sharedPref.getBoolean("checked", false);

    boolean checked1 = sharedPref1.getBoolean("checked1", false);

    checkbox.setChecked(checked);
    checkbox1.setChecked(checked1);

我的点击处理程序

public void handleCheckBoxClick(View view) {
    CheckBox tmpChkBox = (CheckBox) findViewById(view.getId());
    if(tmpChkBox.isChecked())
    {
        tmpChkBox.setBackgroundColor(Color.BLUE);

        SharedPreferences sharedPref = getSharedPreferences("mypref", MODE_PRIVATE);
        sharedPref.edit().putBoolean("checked", true).commit();

    }
    else
    {
        tmpChkBox.setBackgroundColor(Color.RED);
        SharedPreferences sharedPref = getSharedPreferences("mypref", MODE_PRIVATE);
        sharedPref.edit().putBoolean("checked", false).commit();
    }
}

我通过制作另一个点击处理程序并参考你在onCreate中看到的那个我做了一个完全独立的首选项来实现它。有没有办法制作一个可以在每个复选框上使用的首选项?

0 个答案:

没有答案