ダイアログにラジオボタンを表示させようと思って、こんなコードを書いてみました。
@Override protected Dialog onCreateDialog(int id){ if(id == DLG_ID_SINGLE_CHOICE){ return new AlertDialog.Builder(MenuActivity.this) .setTitle(R.string.dialog_title) .setMessage(R.string.dialog_msg) .setSingleChoiceItems(R.array.dialog_choices, 0, null) .setPositiveButton(android.R.string.ok, null) .setNegativeButton(android.R.string.cancel, null) .create(); } return null; }で、結果がこれ。
あれ?表示されてないやん!おかしいな。
AndroidSDKのサンプルのApiDemosを動かしてみると、ちゃんと表示されてる。
ソースを見て、どこが違うのか比べてみたらSetMessage()がない。
じゃあ一回、取ってみるか。
@Override protected Dialog onCreateDialog(int id){ if(id == DLG_ID_SINGLE_CHOICE){ return new AlertDialog.Builder(MenuActivity.this) .setTitle(R.string.dialog_title) .setSingleChoiceItems(R.array.dialog_choices, 0, null) .setPositiveButton(android.R.string.ok, null) .setNegativeButton(android.R.string.cancel, null) .create(); } return null; }
表示された。
一緒に使えないってことか?
推測するに、Androidのダイアログはタイトル、コンテンツ、ボタンの三つの領域があって、
コンテンツ領域には一つのViewしか表示できないんではないかと思います。
試してませんが、setMultiChoiceItems()、setItems()なんかも一緒に使えないんでしょう。
SetView()ってメソッドがあるんで、凝ったことをしたかったらコレを使えってことでしょうね。
0 コメント:
コメントを投稿