У меня есть проблема с 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
, похоже, что построитель перейдет в неопределенное состояние.