2016/06/06

[android]ダイアログがリストだが、ラジオボタンには自分でせんといかんのか

前回は、ここまでだった。

image

確か、私の目論見では、ここでラジオボタンタイプの表示が出てきて、どれかを選択してボタンを押す、だったと思う。

別にこれでも目的は果たせるのだが、せっかく目標を立てているのだから、解決した胃ではないか。


たぶん、BaseAdapterをextendsしているクラスで、getLayoutInflater().infrate()でandroid.R.layout.simple_list_item_1を渡していて、このsimple_list_item_1が持っているのがTextViewだから、ラジオボタンじゃなくて文字だけになってるんじゃないだろうかね。

ソースだと、ここ
L.114もTextViewなのだけど、これは代入するだけなので、元がラジオボタンになってくれなくては。

ダイアログを作るとき、「setSingleChoiceItems()」を使っているけど、実は自分でAdapterを指定してるから、意味をなしていない気がする。。。
ネットでsetSingleChoiceItems()を使った例を見るとラジオボタンになっていたからね。

 

じゃあ、私もここで、simple_list_item_single_choiceをレイアウトとして使えばよいのではなかろうか。

image

おー。
出た出た。
見栄えがこれでよいのかどうかは別として、期待通りだ。
setSingleChoiceItems()も、setAdapter()に変更して、影響がなかった。

 

が、アイテムをタップするとダイアログが閉じてしまう。。。
setCancelable(false)も効果ない。
setOnItemSelectedListener()しても効果ないというか呼ばれない。

あ、setAdapter()からsetSingleChoiceItems()に戻したら閉じなくなった。
なんか、まっとうな修正方法ではないという感じだけは伝わってくるのだけど、回避方法がわからん。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。