在绘制该片段的视图之前调用片段类的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指针?我不知道为什么。
答案 0 :(得分:0)
因为你的imageView在xml中,当你通过id找到Fragment时,你会获得包含imageView的Fragment布局。
当您使用构造函数时,您只是实例化Fragment,但是不会调用将它链接到xml文件的onCreateView。
话虽如此,我认为这不是正确的方式来引用imageview。