2012-03-18 24 views
5

私のAndroidアプリケーションをフラグメントに変換しています。以前は、今や断片的な活動がありました。したがって、このコードはもはや使用することができます。フラグメントの確認ダイアログを表示する

showDialog(CONFIRM_ID); 
// ... 
@Override 
public Dialog onCreateDialog(int id) { 
    // Create the confirmation dialog... 
} 

Fragmentオブジェクト内から、私は後の確認は、ステータスの更新をオブジェクトに私をバックスローすることを確認のダイアログを表示する必要があります。

など。フラグメントX.

  • 表示する確認ダイアログ内

    X.

  • ための "はい" の更新UI私はこれを実現するにはどうすればよいですか?実際のサンプルコードを提供してください。

    答えて

    9

    ここに示すように、あなたは、単にコードを使用して(AlertDialogを)あなたのダイアログを作成することができますhttp://developer.android.com/guide/topics/ui/dialogs.html#AlertDialog

    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setMessage("Are you sure you want to exit?") 
         .setCancelable(false) 
         .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           MyActivity.this.finish(); 
          } 
         }) 
         .setNegativeButton("No", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           dialog.cancel(); 
          } 
         }); 
    AlertDialog alert = builder.create(); 
    alert.show(); 
    

    すぐダイアログ自体を却下していないボタンでダイアログを作成する必要がある場合は、ここに私の答えを見ることができます:How to prevent a dialog from closing when a button is clicked

    +0

    ありがとう。これで十分です! (しかし、私は最善の解決策は 'DialogFragment'を使用し、結果を元のフラグメントに何らかの形で伝播することだと思っています)。 – l33t

    0
      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());  
         builder.setTitle("Your Title"); 
         builder.setMessage("Your Dialog Message"); 
         builder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
            //TODO 
            dialog.dismiss(); 
          } 
         }); 
         builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
            //TODO 
            dialog.dismiss(); 
          } 
         }); 
         AlertDialog dialog = builder.create(); 
         dialog.show(); 
    
    関連する問題