2010-12-11 29 views
1

私は、データベースに不可逆的なことをする前に、ユーザーに確認を2回依頼しています。問題は、アウタークリックハンドラーがインナークリックハンドラーを待たないということです。最初のダイアログで[はい]ボタンをクリックすると、2番目のダイアログが短時間表示されますが、それでも外側のハンドラが実行されて完了し、最終的に両方のダイアログが破棄されます。AndroidネストされたAlertDialog - これは可能ですか?

new AlertDialog.Builder(ActivityMain.this).setMessage(
    "Are you sure?").setPositiveButton("Yes", 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface arg0, int arg1) { 

    new AlertDialog.Builder(ActivityMain.this).setMessage(
     "Are you really sure?").setPositiveButton("Yes", 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface arg0, int arg1) { 

    .... 

なぜですか?

答えて

2

ただ、デザイン、ダイアログなどの新しいXMLレイアウトと新しいアクティビティを作成し、それが@androidするテーマの設定:スタイル/ Theme.DialogアクティビティタグEX下のマニフェストファイルに:で

<activity android:theme="@android:style/Theme.Dialog" android:name="LocationDialog"> </activity> 

ダイアログをクリックするリスナーコード

new AlertDialog.Builder(ActivityMain.this).setMessage(
    "Are you sure?").setPositiveButton("Yes", 
    new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface arg0, int arg1) { 
      Intent i = new Intent(YourActivity.this, NewActivity.class); 
      startActivity(i); 
     } 

これは、あなたのアクションを簡単に適用できるダイアログとして開始します。

+0

私はまだ試していませんが、私はそれが好きです。 – cdonner

2

私は、ダイアログがブロックされていないと考えています。表示されるとすぐに、処理は次のコード行に移ります。ダイアログは引き続き表示され、ユーザーとの対話を待っています。

関連する問題