【问题标题】:Attempt to invoke virtual method 'android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()' android尝试调用虚拟方法 'android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()' android
【发布时间】:2017-07-26 17:59:53
【问题描述】:

我在设置 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);

【问题讨论】:

  • 尝试其他一些检索活动的方法,例如getParentActivity()。根据错误,您的 getActivity() 为 null,在这种情况下可能不是正确的调用方法。
  • 对不起,我的英文不好,我听不懂你在说什么

标签: java android android-fragments nullpointerexception android-recyclerview


【解决方案1】:

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

来自documentation

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

尝试了解fragment lifecycle 以及它如何与activity lifecycle 耦合。

【讨论】:

  • 请给我举个例子?
  • 您正在尝试将片段添加到这样的活动中:getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, (your_fragment)).commit();当您尝试获取上下文时,应用程序崩溃首先尝试将此代码放入片段中的 onViewCreated() 方法中,然后尝试放入 getContext() 而不是 getActivity().getApplicationContext()
【解决方案2】:

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

【讨论】:

  • 这不是错误,但我在recyclerView.setLayoutManager(mLayoutManager); 行中收到新错误java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)'
猜你喜欢
  • 2016-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
  • 2015-08-07
  • 2015-06-21
  • 2018-08-11
相关资源
最近更新 更多