Я пытаюсь создать диалоговое окно с сообщением и флажком. Я использую следующий код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();
}
При выполнении этого кода, флажок и текст «не показывать снова» doens't показано. Когда я удаляю сообщение («это предупреждение»), я устанавливаю флажок. Также, когда я меняю сообщение на заголовок, я устанавливаю флажок, но исходное сообщение слишком длинное для использования в заголовке ...
Надеюсь, что это имеет смысл. Суть в том, что я хочу иметь диалоговое окно с сообщением и флажком для проверки пользователем, чтобы диалог больше не показывался.
Хотя это здорово, чтобы увидеть другое решение, которое работает, я тоже очень интересно, что идет не так в моем примере – MWB
нормально, я тестировал , Я отправляю еще один ответ –