在Android中创建自定义对话框的正确方法

时间:2014-12-27 11:13:05

标签: android android-fragments alertdialog android-ui

我想为我的应用构建自定义Dialog。我读到了一些不同的方法,我想问一下它们之间有什么不同,以及更常用和更受欢迎的方法。

  1. 扩展DialogFragment并在onCreateDialog初始化它:

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
     builder.setMessage(R.string.dialog_fmessage)
    //code
    //code
    
    
    return builder.create();
    
  2. 扩展DialogFragmentonCreateView以扩大布局:

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    return inflater.inflate(R.layout.purchase_items, container, false);
    

    }

  3. 不要在活动中使用任何扩展简单定义实例类型Dialog

          Dialog dialog = new Dialog(CustomDialog.this);
            dialog.setContentView(R.layout.dialog);
            dialog.setTitle("Custom Dialog");
    
            TextView text = (TextView) dialog.findViewById(R.id.textDialog);
            //code
            //code
            //code
    
            dialog.show();
    

1 个答案:

答案 0 :(得分:0)

  1. 扩展DialogFragment并在onCreateDialog初始化它:
  2. 如果要使用带有两个按钮的简单对话框,则应使用AlertDialog.Builder来遵循此方法。您还可以使用setView设置自定义布局。这将为视图 BETWEEN 设置该对话框的标题和按钮的自定义布局。

    1. 扩展DialogFragment并在onCreateView中扩充布局:
    2. 如果要为对话框使用完整的自定义布局(标题,图标,按钮等),则应遵循此方法。

      1. 不要使用任何扩展简单在Activity中定义实例类型Dialog:
      2. 如果您只想在一个活动中创建一个对话框,那么您应该使用它。

        但是,如果您想在各种活动中显示相同的对话框,那么您应该根据您的要求遵循前两种方法中的任何一种。然后,您就可以从任何活动中显示对话框,并且不必在每个活动中编写相同的代码。