Android NPE从不同布局改变ImageView时



我试图改变一个ImageView在不同的布局使用代码等:

        ImageView imageView;
        imageView = (ImageView) findViewById(R.id.imageView1);
        imageView.setImageResource(R.drawable.wizardhat);

但是它的NPE在r。drawable。wizard上因为它不知道它属于哪个布局,显然,它不在根布局中:

-main [include所在的位置]
-layout1[包含代码的地方]
-layout2[图像所在位置]

编辑:好吧,我没有真正解释它:代码运行的视图是在tabview内部。持有选项卡视图的布局包含一个包含我试图编辑的ImageView的布局。我的问题没说对,我现在编辑一下:L

这可能吗?谢谢:)

实际上,NPE在imageView上,因为在膨胀任何视图之前,您应该将其根布局设置为活动的内容视图。如果您的ImageView属于layout1,您必须确保它是活动的当前内容视图,然后您可以在代码中的任何地方膨胀它。如果layout1现在不是内容视图,findViewById()将返回null。我希望我正确理解了你的问题。

我为我的应用程序做的是:

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); 
    play_grid是保存gridview的xml
  • play_layout_root是xml布局的根id;
  • play_gridview是我需要的gridview的id。

你可以把它用在你的问题上。

最新更新