将Android AlertDialog嵌入UI而不是弹出窗口

将Android AlertDialog嵌入UI而不是弹出窗口,android,modal-dialog,android-alertdialog,Android,Modal Dialog,Android Alertdialog,下面的Android代码创建了一个弹出框,只能通过单击它创建的(否定)按钮来取消该框 DialogFragment dialog = new DialogFragment() { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builde

下面的Android代码创建了一个弹出框,只能通过单击它创建的(否定)按钮来取消该框

DialogFragment dialog = new DialogFragment() {
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setNegativeButton(getResources().getString(R.string.abort), 
      new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {}
    });
    setCancelable(false);
    return builder.create();
  }
};  
dialog.show(getSupportFragmentManager(),"");
是否可以将弹出框嵌入到UI中(以便在单击其按钮之前禁用所有其他内容)

弹出框是否可以嵌入到UI中

您可以使用
FragmentTransaction
,将您的
对话框fragment
显示为常规片段,指明您希望它显示的位置

(这样,在单击其按钮之前,所有其他内容都将被禁用)


如果您不打算在自己的窗口中以实际对话框的形式显示
对话框片段
,那么您需要自己完成这一部分。

我可以嵌入UI,而无需构建
对话框片段
,这似乎比构建
对话框片段
并推入UI要好,因为——正如您所注意到的——我自己需要确保“在单击按钮之前禁用所有其他内容”,从而失去了确保“在单击按钮之前禁用所有其他内容”的
DialogFragment
的优势。