只有当我试图让具有消息和一个复选框对话选择题的项目。我使用下面的代码AlertDialog表示不使用消息
private void displayWarning() {
SharedPreferences prefs;
final String PREFS_NAME = "UserData";
final String PREF_SHOW_WARNING_KEY = "show_warning";
prefs = this.getActivity().getSharedPreferences(PREFS_NAME, 0);
final String[] items = {"do not show again"};
final boolean[] itemsChecked = {false};
boolean displayWarnings = prefs.getBoolean(PREF_SHOW_WARNING_KEY, true);
if (displayWarnings) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage("this is a warning")
.setCancelable(false)
.setMultiChoiceItems(items, itemsChecked, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
itemsChecked[which] = false;
} else {
itemsChecked[which] = true;
}
}
})
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// do things
}
});
AlertDialog alert = builder.create();
alert.show();
}
if (itemsChecked[0]) {
displayWarnings = false;
}
else {
displayWarnings = true;
}
prefs.edit().putBoolean(PREF_SHOW_WARNING_KEY, displayWarnings).commit();
}
运行此代码后,复选框和文本“不再显示”好好尝试一下得到显示。当我删除邮件(“这是一个警告”)时,我确实收到了复选框。此外,当我更改消息以标题,我得到的复选框,但原始消息太长的标题使用...
希望这是SENCE。底线是我想要一个对话框,其中包含消息和复选框供用户检查,以便该对话框不会再次显示。
虽然很高兴看到另一种解决方案,工程,我也很感兴趣,什么不顺心在我的例子 – MWB
好吧,我测试,我发布了另一个答案 –