2012-03-11 13 views
0

私のAndroidアプリでは、いくつかのオプションを持つダイアログがありますが、その1つは現在のダイアログが再び表示されるはずです。showDialog(i)からshowDialog(i)を呼び出す方法は? (Android)

protected Dialog onCreateDialog(int id) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    if (id == 0) { 
     builder.setMessage("Message 0") 
       .setPositiveButton("Show Message 0 Again", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         showDialog(0); 
        } 
       }) 
       .setNegativeButton("Show Message 1", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         showDialog(1); 
        } 
       }); 
    } else { 
     builder.setMessage("Message 1") 
       .setPositiveButton("Dismiss", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // nothing 
        } 
       }); 
    } 
    AlertDialog dialog = builder.create(); 
    return dialog; 
} 

は、しかし、私は「再び表示メッセージ0」のボタンをクリックすると、ダイアログが却下されると、再び表示されません。

は、それはこのようなものです。 「メッセージ1を表示」ボタンが正常に機能します。

"メッセージを表示する0"ボタンを何もしないだけでなく、ダイアログが消えないようにするのではなく、実際にはダイアログを閉じてから再度開くことをお勧めします。ここで

答えて

3

が議論される:Dialog.show() vs. Activity.showDialog()

その上をご覧ください...

それが役立ちますホープス

。 :)

+0

この特定のケースでは、 'AlertDialog.Builder builder = new AlertDialog.Builder(this);'を置き換える必要があります。 '最後のAlertDialog.Builderビルダー=新しいAlertDialog.Builder(これ);'と 'showDialog(0);' 'builder.create()。show();'を使用してください。 – BenH

関連する問題