尝试调用虚拟方法 'android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()' android

问题描述 投票:0回答:2

我设置 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);
java android android-fragments nullpointerexception android-recyclerview
2个回答
3
投票

getActivity()
null
。您可能在您的活动附加到片段之前调用此方法。

来自文档

注意:如果您的 Fragment 中需要 Context 对象,您可以 调用 getActivity()。但是,请注意仅调用 getActivity() 当片段附加到活动时。当片段不存在时 尚未连接,或在其生命周期结束时分离, getActivity() 将返回 null

尝试并理解片段生命周期以及它如何与活动生命周期耦合。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.