我有2个复选框,我使用sharedPreferences保存它们,但是,如果选中了另一个复选框,则需要取消选中一个复选框。

我的代码:

public static CheckBox checkHolyPaiges, checkDefault;
public static boolean checkHolyPaiges2, checkDefault2;

checkDefault = (CheckBox) findViewById(R.id.checkDefault);
checkHolyPaiges = (CheckBox) findViewById(R.id.checkHolyPaiges);

final SharedPreferences prefs = getSharedPreferences("game", MODE_PRIVATE);

if (checkHolyPaiges.isChecked())
{
    SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean("checkHolyPaiges", true);
    editor.apply();

    checkDefault.setChecked(false);
}

if (checkDefault.isChecked())
{
    SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean("checkDefault", true);
    editor.apply();

    checkHolyPaiges.setChecked(false);
}

checkHolyPaiges2 = prefs.getBoolean("checkHolyPaiges", false);
checkDefault2 = prefs.getBoolean("checkDefault", true);

最佳答案

您应该在此问题上使用单选按钮。

我认为,单选按钮比复选框更适合处理此问题

https://developer.android.com/guide/topics/ui/controls/radiobutton

09-27 03:59