Alertdialog.builder: не отображаются элементы для флажков
-
28-09-2019 - |
Вопрос
У меня проблема с AlertDialog.Builder в следующем коде:
public void showSettingsBox(){
final CharSequence[] items = {"Item1", "Item2", "Item3"};
final boolean checked[] = new boolean[]{false,false,false};
AlertDialog.Builder builder = new AlertDialog.Builder(fLabyrinthGame);
builder.setMessage(fMessage)
.setCancelable(false)
.setMultiChoiceItems(items, checked, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
CharSequence text = "Item number " + which;
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(fLabyrinthGame, text, duration);
toast.show();
}
})
.setPositiveButton("Apply", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
builder.setTitle(fTitle);
builder.setIcon(R.drawable.icon_exclamation);
AlertDialog alert = builder.create();
alert.show();
}
Три пункта и флажки не отображаются, существует только одна белая линия между строкой заголовка и нажатой кнопки. Кто-нибудь знает, почему это не работает?
Решение
Удалить builder.setMessage(fMessage)
линия и это будет работать :)
setMessage
используется только тогда, когда вы хотите отобразить текстовое сообщение. Если вы используете его в сочетании с setMultiChoiceItems
или setItems
По-видимому, заставляет строитель зайти в неопределенное состояние.
Не связан с StackOverflow