9

アラートダイアログ(つまり、アクティビティの開始時)にそれぞれチェックボックスが付いた10〜12個のアイテムのリストを取得しようとしています。これまでのところ、次のコードを考え出しました。チェックボックスはありません。
では、どうすればこれを実装できますか?サンプルコードやアドバイスをいただければ幸いです。
ありがとう

final CharSequence[] items = {"cat1","cat2","cat3" };
          AlertDialog.Builder builder = new AlertDialog.Builder(this);
          builder.setTitle("Categories");
          builder.setItems(items, new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int item) {
            switch (item) {
            case 0:
             //handle item1
             break;
            case 1:
             //item2
             break;
            case 2:
             //item3
             break;
            default:
             break;
            }  }
          });
          AlertDialog alert = builder.create();
          alert.show();
4

3 に答える 3

5

以下のようにsetItemsではなく、ビルダーオブジェクトでsetSingleChoiceItems()メソッドを設定する必要があります。

 builder.setSingleChoiceItems(items , -1,
                      new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int which) {
               // The 'which' argument contains the index position
               // of the selected item
           }
    })

複数選択リストダイアログを表示する場合は、引数にDialogInterface.OnMultiChoiceClickListenerを指定してsetSingleChoiceItemsではなくsetMultiChoiceItems()を設定する必要があります

すべてのものはDeveloper.Android.comで言及されており、ここでダイアログヘルプを探すことができます

于 2012-12-19T09:07:48.387 に答える
1

アラートダイアログで複雑なカスタムビューを使用しないことをお勧めします。このための結果には、開始アクティビティを使用することをお勧めします。マニフェストで、ダイアログアクティビティのandroid:theme = "@ style/Theme.Dialog"を設定します

于 2012-12-19T08:47:54.320 に答える
0

rajparaが言ったように、しかし私はあなたのスイッチをitems [which] .toString();に置き換えることによって、あなたのコードの複雑さを減らすことを忘れないでください。

于 2016-12-13T22:08:39.450 に答える