Ich versuche, einen Dialog zu erstellen, der eine Nachricht und ein Kontrollkästchen enthält. Ich bin mit dem folgenden CodeAlertDialog zeigt mehrere Auswahloptionen nur, wenn keine Nachricht verwendet wird
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();
}
Wenn dieser Code ausgeführt wird, das Kontrollkästchen und den Text „nicht mehr anzeigen“ angezeigt bekommen doens't. Wenn ich die Nachricht entferne ("dies ist eine Warnung"), bekomme ich die Checkbox. Auch wenn ich die Nachricht zu einem Titel ändere, erhalte ich das Kontrollkästchen, aber die ursprüngliche Nachricht ist zu lang, um in einem Titel zu verwenden ...
Hoffe, das macht Sinn. Die Quintessenz ist, dass ich einen Dialog mit einer Nachricht und einem Kontrollkästchen für den Benutzer möchte, damit der Dialog nie wieder angezeigt wird.
Obwohl es groß ist, eine andere Lösung zu finden, die funktioniert, ich bin auch sehr interessiert, was in meinem Beispiel – MWB
ok schief geht, habe ich es getestet Ich schreibe eine andere Antwort –