【发布时间】: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