5

例えば

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(someView);
AlertDialog dialog = builder.create();
dialog.show();
... then later ...
dialog.setView(someOtherView);

コードはエラーなしで実行されますが、ダイアログでビューが置き換えられることはありません。私はそれを間違っていますか、それともこれは不可能ですか?

4

2 に答える 2

3

理由はわかりませんが、アラート ダイアログ ビルダーを使用すると setView() は機能しませんが、setContentView() は機能します

アラート ダイアログ ビルダーは、Android のすべてのバージョンと互換性を持たせるために、従来の方法でアラート ダイアログを作成しないと思うので、コンテンツ ビューを更新する必要があります。

Dialog.setContentView(ビュー ビュー)

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(view);
AlertDialog alertDialog = builder.create();
alertDialog.show();

じゃあ後で

alertDialog.setContentView(newView);

新しい警告ダイアログを再構築する方が簡単かもしれません

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setView(view);
AlertDialog alertDialog = builder.create();
alertDialog.show();

じゃあ後で

alertDialog.dismiss();
AlertDialog.Builder updatedBuilder = new AlertDialog.Builder(context);
updatedBuilder.setView(updatedView);
AlertDialog updatedAlertDialog = builder.create();
updatedAlertDialog.show();
于 2015-12-04T15:49:26.333 に答える
-2

いいえ、これは不可能です。警告ボックスを閉じてビューを設定し、もう一度表示してみてください。

于 2013-02-07T13:12:38.570 に答える