12

次のようなセレクターを使用してダイアログを実行しようとしています。

セレクター付きの AlertDialog

ListView を保持する AlertDialog を使用してみましたが、ListView と下の灰色の領域の間に醜い黒い境界線が表示されます。通常のダイアログを使用できますが、下部の灰色の領域を手動で作成したくありません。

AlertDialog をサブクラス化できることはわかっていますが、その場合は Builder もサブクラス化する必要があり、そのような小さな詳細のために大量のコードが必要になります。これを行うきちんとした方法はありますか?

乾杯、

4

2 に答える 2

41

アラート ダイアログ ビルダーを使用します。そのためのオプションがあります。短い例:

AlertDialog.Builder adb = new AlertDialog.Builder(this);
CharSequence items[] = new CharSequence[] {"First", "Second", "Third"};
adb.setSingleChoiceItems(items, 0, new OnClickListener() {

        @Override
        public void onClick(DialogInterface d, int n) {
            // ...
        }

});
adb.setNegativeButton("Cancel", null);
adb.setTitle("Which one?");
adb.show();

ダイアログのドキュメントのリストの追加セクションを参照してください。

于 2011-12-22T14:35:32.650 に答える
8

単一のアイテムを選択するには、次のコードを使用する必要があります。これは作業コードです

CharSequence colors[] = new CharSequence[]{"View PDF", "Reduce Size", "Delete PDF", "Share PDF"};

            AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Select Option");
            builder.setItems(colors, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Log.e("value is", "" + which);
                    switch (which) {
                        case 0:
                            break;
                        case 1:
                            break;
                        case 2:
                            break;
                        case 3:
                            break;
                    }
                }
            });
            builder.show();
于 2016-11-23T07:30:33.903 に答える