Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:如何获取对话框对象显示在活动中_Java_Android_Dialog - Fatal编程技术网

Java Android:如何获取对话框对象显示在活动中

Java Android:如何获取对话框对象显示在活动中,java,android,dialog,Java,Android,Dialog,我对android中的对话框有一个问题。 我有一个activity对象,我想知道activity上显示了什么对话框。 我的问题是,当应用程序出现警告消息时,我想显示一个snackbar。 我需要在活动中展示snackbar。但从活动中,当我获取内容视图并传递到SnackBar(SnackBar.make(contentView,“text”,duration)时,它会在对话框下方显示SnackBar。我知道我们应该从对话框中获取视图,从对话框视图中显示SnackBar 请帮我拿这个箱子 问候,,

我对android中的对话框有一个问题。 我有一个activity对象,我想知道activity上显示了什么对话框。 我的问题是,当应用程序出现警告消息时,我想显示一个snackbar。 我需要在活动中展示snackbar。但从活动中,当我获取内容视图并传递到SnackBar(SnackBar.make(contentView,“text”,duration)时,它会在对话框下方显示SnackBar。我知道我们应该从对话框中获取视图,从对话框视图中显示SnackBar

请帮我拿这个箱子

问候,,
Duc Trinh

在全局声明对话框并已初始化之后,尝试查看以下内容:

if(dialog != null || dialog.isShowing()){   
  // Dialog is being shown or not null 
}

您必须将对话框的视图传递给SnackBar

AlertDialog.Builder mAlertDialogBuilder = new AlertDialog.Builder(this);
    LayoutInflater inflater = this.getLayoutInflater();
    // inflate the custom dialog view
    final View mDialogView = inflater.inflate(R.layout.dialog_layout, null);
    // set the View for the AlertDialog
    mAlertDialogBuilder.setView(mDialogView);

    Button btn = (Button) mDialogView.findViewById(R.id.dialog_btn);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // Pass the mDialogView to the SnackBar
            Snackbar
                    .make(mDialogView, "SnackBar in Dialog", Snackbar.LENGTH_LONG)
                    .show();
        }
    });
    AlertDialog alertDialog = mAlertDialogBuilder.create();
    alertDialog.show();

检查传递给make()方法的参数-

make (View view, CharSequence text, int duration)
视图:从中查找父视图。
Snackbar
将查找传递给显示的视图的父视图

需要传递<代码> >对话框> <代码>中的子元素,以便在对话框中显示<代码> Snackbar < /代码>。考虑通过-< /P>

Snackbar.make(mDialogView.findViewById(R.id.child_view), "SnackBar in Dialog", Snackbar.LENGTH_LONG)
                    .show();

为什么要从对话框中显示SnackBar?