【问题标题】:onBindViewHolder .get(position) gets position on null object referenceonBindViewHolder .get(position) 获取空对象引用的位置
【发布时间】:2019-09-09 15:59:05
【问题描述】:

在 onBindViewHolder 方法上,我收到一个错误,我在空引用对象上调用 .get(position)。

不知道如何解决这个问题。

 @Override
public void onBindViewHolder(@NonNull ViewHolder holder, int 
 position) {

    String desc_data = event_list.get(position).getDesc();

    holder.setDescText(desc_data);


 }

这是我在 LogCat 中遇到的错误。 `

2019-09-09 19:16:30.479 14504-14504/com.example.iacs E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.iacs, PID: 14504
    java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object java.util.List.get(int)' on a null object reference
        at com.example.iacs.EventRecyclerAdapter.onBindViewHolder(EventRecyclerAdapter.java:38)
        at com.example.iacs.EventRecyclerAdapter.onBindViewHolder(EventRecyclerAdapter.java:13)
        at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6781)
        at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6823)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5752)
        at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6019)
        at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858)

        `

【问题讨论】:

  • 你的event_list初始化了吗?
  • ` public List event_list;公共 EventRecyclerAdapter(List event_list){ this.event_list = event_list; } `我相信是这样
  • 您确定列表中的所有项目都不为空吗?在构造函数中运行for 循环并打印出所有项目。检查它们是否为空。
  • 可能是这样,因为我运行 for 循环并得到相同的空引用对象错误。不确定我在哪里犯了错误,因为 event_list 来自我之前制作的 firebase 集合
  • 这不是List 中的项目。 List 本身为空。您没有提供足够的信息让我们能够准确地告诉您为什么会这样。

标签: android android-studio android-recyclerview android-adapter


【解决方案1】:

写这张支票

if(event_list != null && event_list.size >= position ){
String desc_data = event_list.get(position).getDesc();
holder.setDescText(desc_data+"");
}

我希望这个检查能解决你的空点异常

【讨论】:

  • 应用仍然不断崩溃
  • 刚刚分享了。
  • String desc_data = event_list.get(position).getDesc() + "" ;这样做就能解决你的问题
猜你喜欢
  • 2018-10-17
  • 2016-04-07
  • 1970-01-01
  • 2016-10-14
  • 2015-04-02
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-07
相关资源
最近更新 更多