2016-03-16 41 views
0

片段类的callBack方法onCreateView()在绘制该片段上的视图之前被调用,因此我创建了片段类的子类,并在其中创建了一个ImageView变量。在MainActivity中调用imageView片段

之后,我在方法onCreateView()中将layoutView中存在的imageView分配给此imageView。

我有MainActivity我在其中添加此片段(使用xml)。

因此,当我运行应用程序时,我可以看到在活动中绘制的片段,这意味着片段的onCreateView已正确调用,因此ImageView不是空值。

,但是当我在MainActivity使用的ImageView我得到一个空指针异常也就是在那里我得到异常的代码:

fragmentB = new FragmentB(); 
imageView = fragmentB.imageView; 

,当我使用:

fragmentB = (FragmentB) getFragmentManager().findFragmentById(R.id.fragment2); 

我得到了ImageView成功。

我想让你解释为什么它在构造函数中使用时返回一个空指针?我不知道为什么。

回答

0

因为你的imageView是在xml中,当你通过id找到Fragment时,你会得到包含imageView的Fragment的布局。

当您使用构造函数时,您只是实例化Fragment,但是将它链接到xml文件的onCreateView不会被调用。

这就是说,我不认为这是正确的方式引用imageview。

+0

那么引用它的正确方法是什么? –

相关问题