Java 我可以动态修改对话框的布局吗?

Java 我可以动态修改对话框的布局吗?,java,android,android-layout,dialog,Java,Android,Android Layout,Dialog,我试图在以下代码中消除NPE: Dialog mutuallyDialog = new Dialog(getActivity()); mutuallyDialog.requestWindowFeature(android.view.Window.FEATURE_NO_TITLE); RelativeLayout container = (RelativeLayout) getActivity().findViewById(R.layout.new_couple); container.fin

我试图在以下代码中消除NPE:

Dialog  mutuallyDialog = new Dialog(getActivity());
mutuallyDialog.requestWindowFeature(android.view.Window.FEATURE_NO_TITLE);

RelativeLayout container = (RelativeLayout) getActivity().findViewById(R.layout.new_couple);
container.findViewById(R.id.popup_av2).setBackground(someDrawable); // NPE, drawable returned form elsewhere

mutuallyDialog.setContentView(container);
mutuallyDialog.show();
new_couple只是一个简单的布局xml,带有一些文本和图像视图popup_av1和popup_av2


我想要实现的是能够在显示对话框之前更改这两个ImageViews src,但由于某种原因,上面的代码无法工作。这种方法正确吗?

对于以下布局,您不调用按Id查找视图:

RelativeLayout container = (RelativeLayout)getActivity().findViewById(R.layout.new_couple);
相反,您可以将其设置为内容视图,如:

mutuallyDialog.setContentView(R.layout.new_couple);
现在,您可以在mutuallyDialog上调用按ID查找视图,以查找布局中的视图并对其进行更改:

mutuallyDialog.findViewById(R.id.popup_av2).setBackground(someDrawable);
将代码更改为以下内容:

Dialog  mutuallyDialog = new Dialog(getActivity());
mutuallyDialog.requestWindowFeature(android.view.Window.FEATURE_NO_TITLE);
mutuallyDialog.setContentView(R.layout.new_couple);
mutuallyDialog.findViewById(R.id.popup_av2).setBackground(someDrawable); 


mutuallyDialog.show();

让我知道它是否有帮助

这是正确的,我还将它与通用图像加载器相结合,它的工作方式很有魅力。谢谢