【问题标题】:Getting null pointer with recycler adapter使用回收器适配器获取空指针
【发布时间】:2015-08-16 23:03:58
【问题描述】:

我的应用程序由于片段代码中带有 recyclerview 适配器的空指针而崩溃。我正在使用此适配器生成卡片视图列表,但无法找出导致此空指针的确切原因。在水龙头类中设置适配器 r.setAdapter(rA) 时发生日志。

片段代码

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{

    v = inflater.inflate(R.layout.faucetcards, container, false);
    r = (RecyclerView) getActivity().findViewById(R.id.feedRecyclerView);

    rA = new RecyclerAdapter(generateCards());
    lm = new LinearLayoutManager(getActivity());
    r.setAdapter(rA);
    r.setLayoutManager(lm);

    return v;
}

更新:

我的错误在于 r 或设置适配器。这就是空指针出现的地方,即使 rA 不为空

【问题讨论】:

  • 您也可以发布FaucetHolder 课程。它在哪里?
  • 我认为这两行代码this.faucets = faucetsI; this.faucets.addAll(faucets); 存在一些问题,您试图在其中复制水龙头列表。您在代码中的哪一点遇到异常您是否尝试过调试?
  • 在水龙头类中设置适配器r.setAdapter(rA)时出现日志
  • 你能发布你的水龙头课程吗?
  • 你试过调试吗?堆栈跟踪应该为您提供一个良好的起点。

标签: nullpointerexception fragment android-recyclerview


【解决方案1】:

r.set adapter(rA) 处的 Nullpointer 发生是因为 r 为空。

r 为 null 的原因是你试图在 Fragment 的父 Activity 中找到 RecyclerView。但是 RecyclerView 包含在 Fragment 的布局中,您在 onCreateView 方法中对其进行了膨胀并存储在 v 中。所以您应该做的是:

r = (RecyclerView) v.findViewById(R.id.feedRecyclerView);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    相关资源
    最近更新 更多