1

我有一些问题,当我设置RecyclerViewAdapter试图调用虚拟方法android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()“的Android

我得到错误

显示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); 
+0

尝试一些其他检索活动的方法,例如'getParentActivity()'。根据错误,您的getActivity()为空,可能不是在这种情况下调用的正确方法。 – astrade

+0

对不起我的英语不好,我不明白你在说什么 –

回答

0

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

+0

这不是错误,但我得到新的错误'java.lang.NullPointerException:尝试调用虚拟方法'void android.support.v7.widget.RecyclerView .setLayoutManager(android.support.v7.widget.RecyclerView $ LayoutManager)''in line'recyclerView.setLayoutManager(mLayoutManager);' –

2

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

documentation

警告:如果您需要片段内的上下文对象,你可以调用 getActivity()。但是,请谨慎地在片段附加到活动时调用getActivity()仅 。当片段不是 尚未附接,或它的生命周期结束期间分离, getActivity()将返回null

尝试和理解fragment lifecycle以及它是如何加上activity lifecycle

+0

请给我举个例子吗? –

+0

您正在尝试向以下活动添加片段: getSupportFragmentManager()。beginTransaction()。replace(R.id.fragment_container,(your_fragment))。commit(); 当您尝试获取上下文时,应用程序崩溃 首先尝试将此代码放入片段 中的onViewCreated()方法,然后尝试将getContext()而不是getActivity()。getApplicationContext() – Aboulfotoh

相关问题