AlertDialogのリスト項目選択でダイアログを閉じないようにする|Android開発

   

AlertDialogでリストを表示した際、リストの項目選択でダイアログが閉じるケースがあります。
本記事は項目選択ではダイアログを閉じず、且つ項目の更新を行う方法になります。

項目選択でダイアログが閉じるコード

下記の様にsetItems(mViewItems, mItemSelectedListener)だと項目選択でダイアログが閉じてしまいます。

項目選択で閉じるダイアログ

項目選択でダイアログを閉じないようにする

下記では、項目選択ではダイアログを閉じないようにして項目を入れ替えています。
但し、入れ替え後のリスト表示が入れ替え前のスタイルと若干変わってしまいます。

選択前

選択前

選択後

選択後

選択後の文字開始座標が異なっています。また文字色も異なっています。文字色は端末によって変わらない場合もありました。

リスト更新でスタイルが変わらないようにする

ListViewsetViewしてやることでスタイルが統一されます。
setDividerHeight(0)をコールしない場合は項目間にボーダーが表示されます。※本記事のサンプル画像ではボーダーがありましたが、ボーダーが無い端末もあったため、ボーダー無しで設定しています。

選択前

選択前

選択後

選択後

文字色が薄くなっていますが、端末によっては濃く表示されていました。

 - Android