📜  删除角对话框片段 android (1)

📅  最后修改于: 2023-12-03 14:50:21.069000             🧑  作者: Mango

删除角对话框片段 Android

在Android开发中,经常需要用到删除确认对话框,以避免用户不小心误删除数据。本文将介绍如何创建一个删除角对话框片段,以便在需要时重用。

创建DialogFragment类

我们要创建一个继承自DialogFragment的类,用于创建删除对话框片段。以下是示例代码:

public class DeleteConfirmationDialogFragment extends DialogFragment {
  
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage(R.string.delete_confirmation_message)
           .setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   // 用户点击了“删除”按钮
                   // 在这里写上想要执行的代码
               }
           })
           .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   // 用户点击了“取消”按钮
                   // 关闭对话框
                   dismiss();
               }
           });
           
    // 创建对话框
    return builder.create();
  }       
}

上述代码中,onCreateDialog()方法用于创建对话框,其中包括消息内容、删除按钮和取消按钮。当用户点击删除按钮时,会执行onClick()方法中的代码。

在Activity中使用

要使用这个删除对话框片段,我们可以在Activity中调用DeleteConfirmationDialogFragment,并实现DialogInterface.OnClickListener接口。以下是示例代码:

public class MainActivity extends Activity implements DialogInterface.OnClickListener {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  }

  void showDeleteConfirmationDialog() {
      DialogFragment dialogFragment = new DeleteConfirmationDialogFragment();
      dialogFragment.show(getFragmentManager(), "DeleteConfirmationDialogFragment");
  }

  @Override
  public void onClick(DialogInterface dialog, int id) {
      // 用户点击了“删除”按钮后的代码
  }
}

在需要时,我们可以从Activity中调用showDeleteConfirmationDialog()方法来显示删除对话框片段。

如何重用

我们可以把这个删除对话框片段放在单独的Java文件中,以便在需要时重用。以下是示例代码:

public class DeleteConfirmationDialogFragment extends DialogFragment {
  
  private DialogInterface.OnClickListener mListener;

  public DeleteConfirmationDialogFragment(DialogInterface.OnClickListener listener) {
    mListener = listener;
  }
  
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setMessage(R.string.delete_confirmation_message)
           .setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   mListener.onClick(dialog, id);
               }
           })
           .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   dismiss();
               }
           });
           
    return builder.create();
  }       
}

上述代码中,我们在构造函数中接收一个DialogInterface.OnClickListener类型的参数,调用mListener.onClick()方法来执行用户点击删除按钮后的代码。这样,我们就可以从外部调用该删除对话框片段,并定义其行为。

结论

本文介绍了如何创建一个删除角对话框片段,并展示了如何在Activity中使用和重用该片段。通过这种方法,我们可以在Android应用中轻松地实现删除确认对话框。