我有一个定义为
的界面public interface UpdateList {
public void updateList();
}
实现为
@Override
public void updateList() {
arrAdapter.notifyDataSetChanged();
}
当我从我定义的函数内部调用函数时,它将正常运行,但是当我通过接口调用它时,我在arrAdapter.notifyDataSetChanged();
上得到一个NullPointer异常
以下是我通过界面调用它的方式,来自具有多个片段的Activity,在ViwePager中实现UpdateList
接口
for (int i=0; i < mSectionsPagerAdapter.getCount(); i++) {
((UpdateList) mSectionsPagerAdapter.getItem(i)).updateList();
}
其中mSectionsPagerAdapter
是FragmentPagerAdapter
的实现。我不确定我做错了什么。
编辑:因为人们假设它为null,所以在创建片段时会实例化arrAdapter。
编辑2:我向那些说它是空的人道歉,我是白痴,现在已经意识到错误在哪里。 mSectionsPagerAdapter.getItem(i)
为该位置返回一个新的Fragment实例,但是在调用onCreateView之前没有任何内容实例化,因为该片段永远不会显示,所以不会发生这种情况。
所以我的问题应该是如何获得Viewpager创建的Fragment实例?