Android(Java):如何在对话框中使用LayoutInflater.inflate()?

Android(Java):如何在对话框中使用LayoutInflater.inflate()?,java,android,android-layout,null,Java,Android,Android Layout,Null,我在对话框中使用LayoutInflater,不知道将什么设置为第二个参数,目前为空 我找到了onCreateViewLayoutInflater充气器、ViewGroup父对象、捆绑包,但该方法不适用于对话框 用ViewGroup null之类的东西来伪造空值对我来说不是一个选项 我的对话 错误报告人: 有什么想法吗?提前谢谢 解决方案 用这个 setContentView(R.layout.my_dialog); 而不是这个 LayoutInflater inflater = Layout

我在对话框中使用LayoutInflater,不知道将什么设置为第二个参数,目前为空

我找到了onCreateViewLayoutInflater充气器、ViewGroup父对象、捆绑包,但该方法不适用于对话框

用ViewGroup null之类的东西来伪造空值对我来说不是一个选项

我的对话

错误报告人:

有什么想法吗?提前谢谢

解决方案

用这个

setContentView(R.layout.my_dialog);
而不是这个

LayoutInflater inflater = LayoutInflater.from(getContext());
View view  = inflater.inflate(R.layout.my_dialog, null);
setContentView(view);
示例代码

然后像这样创建对话框

MyDialog myDialog = new MyDialog(this);
myDialog.show();
用这个

setContentView(R.layout.my_dialog);
而不是这个

LayoutInflater inflater = LayoutInflater.from(getContext());
View view  = inflater.inflate(R.layout.my_dialog, null);
setContentView(view);
示例代码

然后像这样创建对话框

MyDialog myDialog = new MyDialog(this);
myDialog.show();

谢谢你,尼利斯,那我怎么才能看到风景呢?我需要它来控制对话框中的一个按钮。@B先生。您可以直接在onCreate方法中找到findViewById do,如此按钮yes=findviewbydr.id.btn\u yes;然后,您可以根据您的requirement@NileshRathod问题是,这两种方法都是正确的。他的问题可能在上下文中,getContext可能返回null。只要将活动中的上下文传递到构造函数中,代码就可以工作了。有时代码无法工作,因为在充气方法中需要所有3个参数,这里只有两个。@B先生。先尝试更新答案,然后执行setContentViewfindViewById@Mr.B.You在设置视图之前,无法初始化按钮。所以你的代码是可以工作的,当你把所有代码移到setContentView下面时,这应该总是在超级方法之后。谢谢Nilesh,但是我怎么才能得到视图呢?我需要它来控制对话框中的一个按钮。@B先生。您可以直接在onCreate方法中找到findViewById do,如此按钮yes=findviewbydr.id.btn\u yes;然后,您可以根据您的requirement@NileshRathod问题是,这两种方法都是正确的。他的问题可能在上下文中,getContext可能返回null。只要将活动中的上下文传递到构造函数中,代码就可以工作了。有时代码无法工作,因为在充气方法中需要所有3个参数,这里只有两个。@B先生。先尝试更新答案,然后执行setContentViewfindViewById@Mr.B.You在设置视图之前,无法初始化按钮。所以,当您将所有代码移到setContentView下面时,您的代码将正常工作,这应该始终在super方法之后。
MyDialog myDialog = new MyDialog(this);
myDialog.show();