2012-05-23 22 views
29

AlertDialog.BuilderAlertDialogを作成し、setItems()でいくつかの項目を設定します。ダイアログが表示されますが、項目は表示されません。私が見るのはメッセージだけです。AlertDialogの項目が表示されない

final CharSequence[] items = {"Red", "Green", "Blue"}; 

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); 
dialogBuilder.setMessage("Pick a color"); 
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() {   
    public void onClick(DialogInterface dialog, int which) { 
     // Do anything you want here 
    }  
}); 

dialogBuilder.create().show(); 

PositiveButtonを設定すると、そのボタンがうまく表示されます。私はまた、MultiChoiceItemsSingleChoiceItemsを設定しようとしましたが、どちらもどちらでも動作しません。

+5

'setMessage'ではなく' setTitle'を使うようにしてください。私は、ビルダーがそのために通常のメッセージダイアログを作成していると仮定します。 – Knickedi

+0

ああ、それに気付かなかった.. それは、ありがとう! この投稿を「回答済み」としてマークするにはどうすればよいですか? –

答えて

117

setMessageの代わりにsetTitleを使用してメッセージ本文を設定し、アイテムリストを上書きします。コードの下

+2

アラートダイアログとともにリストアイテムを使用するときにこれを見つけるのは非常に困難です。 – Zoombie

+0

これはドキュメントに記載されているはずです。ありがとう、あなたの答えは私の一日を節約 – Armando

+0

どのように両方を持つことができますか?アイテムとメッセージ? – Pierre

0

使用: -

final CharSequence[] items = {"Red", "Green", "Blue"}; 
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); 
dialogBuilder.setTitle("Pick a color"); 
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() { 

    public void onClick(DialogInterface dialog, int which) { 
     // Do anything you want here 
    } 

}); 
dialogBuilder.create().show(); 
0

あなたがsetTitle代わりのsetMessageのために行かないのはなぜこの

final CharSequence[] items = {"Red", "Green", "Blue"}; 
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); 
dialogBuilder.setTitle("Pick a color"); 
dialogBuilder.setSingleChoiceItems(items,-1, new DialogInterface.OnClickListener() 
@Override 
public void onClick(DialogInterface dialog, int which) 
{ 
} 
}); 
dialogBuilder.show(); 
+0

'setSingleChoiceItems'は本質的に' setItems'と同じです: 'setMessage'とはまだ排他的です。唯一の違いは、永続的な選択を実装する場合、「単一選択」のラジオボタンが表示されることです。 – TWiStErRob

2

を試してみてください? setTitle("Pick a color")で試してみてください。

私はそれがあなたを助けてくれることを願っています。

0

あなたは、リソースのパッケージが含まれている必要があり、リソース文字列の配列を使用している場合alertDialogBuilder.setCustomTitle(view)

0

を試してみてください。 コンテキスト()。getResources()。getStringArray(R.array.items);

私はポインタにコンテキストとリソースのパッケージを渡すまで、私のリストはR.array.itemsを使って表示されませんでした。

幸運を祈る!