Android Fragments 尝试调用虚拟方法“android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()”android

cxfofazt  于 11个月前  发布在  Android
关注(0)|答案(2)|浏览(86)

我在设置RecyclerViewAdapter时遇到了一些问题
我得到错误
java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()”
在线mLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
怎么修

for (ProfileFeedListModelTwo.PostBean.PollBean pollBean : pp){
   pollBeanArrayList.add(pollBean);}

 adapDetailTopicPoll = new AdapDetailTopicPoll(pollBeanArrayList,getContext());
            mLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
            recyclerView.setLayoutManager(mLayoutManager);
            recyclerView.setItemAnimator(new DefaultItemAnimator());
            recyclerView.setAdapter(adapDetailTopicPoll);

字符串

qxgroojn

qxgroojn1#

getActivity()null。您可能在Activity附加到片段之前调用此方法。
documentation
注意:如果你需要在你的Fragment中有一个Context对象,你可以调用getActivity()。但是,请注意,仅当片段附加到Activity时才调用getActivity()。如果片段尚未附加,或者在其生命周期结束时被分离,getActivity()将返回null
尝试理解fragment lifecycle以及它如何与activity lifecycle耦合。

wj8zmpe1

wj8zmpe12#

只需使用mLayoutManager = new LinearLayoutManager(getActivity());如果您在Activity中编写此代码,则使用getApplicationContext()

相关问题