2010-06-21 51 views
6

我有下面的代碼的alertdialog.builder一個問題: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(); 
} 

的三個項目和複選框不顯示,有間只有一個白線標題欄和應用按鈕。有人知道爲什麼這不起作用嗎?

回答

11

取出builder.setMessage(fMessage)線,它會工作:)

setMessage僅用於當你想顯示文本消息。如果將它與setMultiChoiceItemssetItems結合使用,看起來會使構建器進入未定義狀態。

+0

非常感謝,它的工作原理:) – sergej 2010-06-21 08:21:40

+0

如果您需要對話框的標題,請使用'setTitle'。 – 2013-04-17 08:47:32