0

次の警告ダイアログには、タイトルと 4 つの項目 (赤、緑、青、黒) があります。これらのアイテムのいずれかが選択されるたびにアイコンを変更したいと思います。

これが私のコードです:

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
final CharSequence[] items = {"Red", "Green", "Blue", "Black"};

alertDialog.setTitle("Pick a color");

alertDialog.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface arg0, int num) {
        switch(num) {
            case 0: alertDialog.setIcon(R.drawable.red);
            break;

            case 1: alertDialog.setIcon(R.drawable.green);
            break;

            case 2: alertDialog.setIcon(R.drawable.blue);
            break;

            case 3: alertDialog.setIcon(R.drawable.black);
            break;
            }
    }
});

.setIcon() メソッドが呼び出されているという事実を証明できます。ただし、警告ダイアログの外観に変更はありません。事実上、正しいメソッドが実行されてもアイコンは変更されません。

誰かがこれを行う方法を説明してください。

4

1 に答える 1

0

アイコンをAlertDialogビルダーに設定していますが、AlertDialog自体に設定する必要があります。変化する:

alertDialog.setIcon(R.drawable.XxX);

に:

((AlertDialog)arg0).setIcon(R.drawable.XxX);
于 2013-04-08T21:20:17.407 に答える