int android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null.....
2024-09-28 13:05:40
Android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null..空指针问题,费劲心思才找到报空指针的原因:
代码是这样的,有多种布局类型
@Override
public int getItemViewType(int position) {
BmobIMMessage message = msgs.get(position);
if(message.getMsgType().equals(BmobIMMessageType.IMAGE.getType())){
return message.getFromId().equals(currentUid) ? TYPE_SEND_IMAGE: TYPE_RECEIVER_IMAGE;
}else if(message.getMsgType().equals(BmobIMMessageType.LOCATION.getType())){
return message.getFromId().equals(currentUid) ? TYPE_SEND_LOCATION: TYPE_RECEIVER_LOCATION;
}else if(message.getMsgType().equals(BmobIMMessageType.VOICE.getType())){
return message.getFromId().equals(currentUid) ? TYPE_SEND_VOICE: TYPE_RECEIVER_VOICE;
}else if(message.getMsgType().equals(BmobIMMessageType.TEXT.getType())){
return message.getFromId().equals(currentUid) ? TYPE_SEND_TXT: TYPE_RECEIVER_TXT;
}else if(message.getMsgType().equals(BmobIMMessageType.VIDEO.getType())){
return message.getFromId().equals(currentUid) ? TYPE_SEND_VIDEO: TYPE_RECEIVER_VIDEO;
}else if(message.getMsgType().equals("agree")) {//显示欢迎
return TYPE_AGREE;
}else{
// return -1;
return TYPE_AGREE;
}
然后这是
getItemCount()
@Override
public int getItemCount() {
return msgs.size(); }
最后发现是因为itemCount与viewType不匹配导致的
例如:
recyclerview总共有6种类型,现在只写了一种类型测试,其他的都没有些,才导致报空,然后在getItemCount中return 1; 就ok了
最新文章
- 【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现
- Linux date命令
- Java集合分组
- c++ operator
- JavaScript放置位置区别
- HTML <;!DOCTYPE>; Declaration
- rails devise使用
- 【网络流24题】 No.22~24
- 前端面试题第一波,要offer的看过来~
- R语言笔记
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
- 简单CSS 布局
- 简单模拟一下ab压力测试
- ubuntu下安装和配置pycharm和pyqt5
- 1.1大数据平台架构及Hadoop生态圈
- 五.ssh远程管理服务
- oracle存储函数实例
- weblogic系列漏洞整理 -- 2. weblogic弱口令
- bzoj 4767: 两双手 组合 容斥
- string的方法find