我正在尝试使用代码等在不同的布局中更改ImageView:
ImageView imageView;
imageView = (ImageView) findViewById(R.id.imageView1);
imageView.setImageResource(R.drawable.wizardhat);
但是NPE在R.drawable.wizardhat上,因为它不知道它属于什么布局,显然,它不在根布局中:
编辑:好的,我没有真正解释过:代码运行的视图位于tabview中。保存选项卡视图的布局包含一个包含到我正在尝试编辑的ImageView的布局。我没有正确地说出我的问题,我现在就编辑它:L-main [两个包含的位置]
-layout1 [包含代码的地方]
-layout2 [图像所在的位置]
这可能吗?谢谢:))
答案 0 :(得分:0)
实际上,它是imageView
上的NPE,因为在膨胀任何视图之前,您应该将其根布局设置为您的活动的内容视图。如果您的ImageView
属于layout1
,则必须确保它是活动的当前内容视图,然后您可以在代码中的任何位置对其进行充气。如果layout1
目前不是内容视图,findViewById()
将返回null。我希望我能正确理解你的问题。
答案 1 :(得分:0)
我为我的应用做的是:
inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
layout = inflater.inflate(R.layout.play_grid,(ViewGroup)findViewById(R.id.play_layout_root));
gridview = (GridView)layout.findViewById(R.id.play_gridview);
你可以将它用于你的问题。