在MainActivity中调用片段的imageView

时间:2016-03-16 19:29:48

标签: android

在绘制该片段的视图之前调用片段类的callBack方法onCreateView(),所以我创建了一个fragment类的子类,并在其中创建了一个ImageView变量。

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

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

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

但是当我在MainActivity中使用此ImageView时,我得到一个空指针异常,这是我得到异常的代码:

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

当我使用时:

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

我成功地获得了ImageView

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

1 个答案:

答案 0 :(得分:0)

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

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

话虽如此,我认为这不是正确的方式来引用imageview。