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

标签 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.findViewById(R.id.popup_av2).setBackground(someDrawable); // NPE, drawable returned form elsewhere

mutuallyDialog.setContentView(container);
mutuallyDialog.show();

R.layout.new_ Couple 只是一个简单的布局 xml,其中包含一些文本和 ImageView popup_av1 和 popup_av2。

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

最佳答案

对于如下布局,您不会通过 Id 调用查找 View :

RelativeLayout container = (RelativeLayout)getActivity().findViewById(R.layout.new_couple);

相反,您可以将其设置为内容 View ,例如:

mutuallyDialog.setContentView(R.layout.new_couple);

现在您可以在mutualDialog上通过ID调用find view来查找布局中的 View 并更改它们:

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();

如果有帮助请告诉我

关于java - 我可以动态修改对话框的布局吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20376289/

相关文章:

Java 错误,我怎么知道哪个是缺少的证书? "unable to find valid certification path to requested target"

java - 在距离 10 的圆内画一个圆

android - 以编程方式将 View 添加到 RelativeLayout android

android - 如何将 EditText 设置为仅输入十六进制数字?

android - 动画 : Move TextView into another container

java - 如何在不增加圈复杂度的情况下覆盖等于?

java - 从java中的套接字流读取文本和二进制文件时出现奇怪的字符

java - Eclipse插件: Finding line numbers containing a substring not working

android - 每当将新联系人添加到“联系人”时,如何添加类似 whatsapp 的选项以联系

android - Android 源代码覆盖如何工作?