ダイアログにラジオボタンを表示させようと思って、こんなコードを書いてみました。
@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 コメント:
コメントを投稿