空指针异常android:void android.widget.TextView.setText(java.lang.CharSequence)和#x27;关于空对象引用
我从JSON文件中获取数据,我必须根据日期对这些数据进行分组。例如,下面列出了6月6日期间发生的所有活动。i、 e.6月6日为标题,所有发生的事件均列为偶数 我的问题是,当我试图将这些日期转换成某种格式时,我遇到了空指针异常 有两种布局,一种用于具有日期的标题,另一种用于事件。我正在尝试将日期设置到适配器的空指针异常android:void android.widget.TextView.setText(java.lang.CharSequence)和#x27;关于空对象引用,java,android,nullpointerexception,null,Java,Android,Nullpointerexception,Null,我从JSON文件中获取数据,我必须根据日期对这些数据进行分组。例如,下面列出了6月6日期间发生的所有活动。i、 e.6月6日为标题,所有发生的事件均列为偶数 我的问题是,当我试图将这些日期转换成某种格式时,我遇到了空指针异常 有两种布局,一种用于具有日期的标题,另一种用于事件。我正在尝试将日期设置到适配器的onBindViewHolder方法中的标题布局中。在这里,我得到了空指针异常 多谢各位 @Override public void onBindViewHolder(@NonNull Rec
onBindViewHolder
方法中的标题布局中。在这里,我得到了空指针异常
多谢各位
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
switch (viewHolder.getItemViewType()) {
case ListItem.TYPE_HEADER:
HeaderItem dateItem = (HeaderItem) consolidatedList.get(i);
HeaderViewHolder dateViewHolder = (HeaderViewHolder) viewHolder;
String pattern = "yyyy-MM-dd";
DateFormat df4 = new SimpleDateFormat("MM dd, yyyy");
Date date = null;
String str4 = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
try {
date = simpleDateFormat.parse(dateItem.getDate());
str4 = df4.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
dateViewHolder.mDate.setText(str4);
break;
case ListItem.TYPE_EVENT:
EventItem event = (EventItem) consolidatedList.get(i);
EventViewHolder holder = (EventViewHolder) viewHolder;
holder.mDate.setText(event.getStreamItem().getDate());
holder.mDesc.setText(event.getStreamItem().getDesc());
holder.mTitle.setText(event.getStreamItem().getTitle());
String image = event.getStreamItem().getImage();
if (image.contains("education_icon.png")) {
holder.mImageView.setImageResource(R.drawable.boardofeducation);
} else if (image.contains("legislature_icon.png")) {
holder.mImageView.setImageResource(R.drawable.legislature);
}
break;
}
}
//头像架
private static class HeaderViewHolder extends RecyclerView.ViewHolder {
protected TextView mDate;
public HeaderViewHolder(@NonNull View itemView) {
super(itemView);
TextView mDate = itemView.findViewById(R.id.date);
}
}
这里是错误
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at com.example.dipalbhandari.nebraskacapitollive.StreamArrayAdapter.onBindViewHolder(StreamArrayAdapter.java:97)
更改此行
TextView mDate=itemView.findViewById(R.id.date)代码>
到
mDate=itemView.findviewbyd(R.id.date)代码>
在视图持有者类中声明对象后,应正确初始化该对象为视图持有者添加代码。如果mDate为空,可以显示视图持有者代码吗?我已经添加了代码。让我进一步了解