在Fragment中显示确认对话框

时间:2012-03-18 21:37:15

标签: android android-fragments android-fragmentactivity

我正在将我的Android应用程序转换为使用片段。以前,我有一个活动,现在是一个片段。因此,不能再使用此代码:

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

Fragment对象中,我需要显示一个确认对话框,确认后会将我返回到对象进行状态更新。

E.g。

  1. 内部片段X。
  2. 显示确认对话框。
  3. 如果“是”更新X的用户界面。
  4. 我怎样才能做到这一点?请提供工作示例代码。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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();