Android ListView下滑会报空指针异常
16lz
2021-01-23
运行截图
错误信息:
错误代码:
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { // Log.d("size",bookList.size()+""); Book book=getItem(position); View view; ViewHolder viewHolder; if(convertView==null){ view= LayoutInflater.from(getContext()).inflate(resourceId,parent,false); viewHolder=new ViewHolder(); viewHolder.bookAuthor=view.findViewById(R.id.book_item_author); viewHolder.bookTitle=view.findViewById(R.id.book_item_title); viewHolder.bookLastChapter=view.findViewById(R.id.book_item_lastChapter); } else{ view=convertView; viewHolder=(ViewHolder) view.getTag(); } viewHolder.bookAuthor.setText(book.getAuthor()); viewHolder.bookTitle.setText(book.getTitle()); viewHolder.bookLastChapter.setText(book.getLastChapter()); return view; }
错误原因:
ListView滑动后,viewHolder内的变量不能找到了。
解决方法:
convertView为null时候,设置 view.setTag(viewHolder);
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { // Log.d("size",bookList.size()+""); Book book=getItem(position); View view; ViewHolder viewHolder; if(convertView==null){ view= LayoutInflater.from(getContext()).inflate(resourceId,parent,false); viewHolder=new ViewHolder(); viewHolder.bookAuthor=view.findViewById(R.id.book_item_author); viewHolder.bookTitle=view.findViewById(R.id.book_item_title); viewHolder.bookLastChapter=view.findViewById(R.id.book_item_lastChapter); view.setTag(viewHolder); } else{ view=convertView; viewHolder=(ViewHolder) view.getTag(); } viewHolder.bookAuthor.setText(book.getAuthor()); viewHolder.bookTitle.setText(book.getTitle()); viewHolder.bookLastChapter.setText(book.getLastChapter()); return view; }
更多相关文章
- Android 获取drawable中图片的高度宽度
- android 从webview中读取缓存的图片
- android 网络读取图片 带进度条
- android 多点触摸 实现图片缩放 Image Zoom
- Android应用程序之间共享文字和图片(二)
- android中setImageResource加载大图片出现oom解决方案
- Android跳转系统相机或相册获取图片
- android对大图片的缓存处理
- android 根据SD卡中图片路径读取并显示SD中的图片――源代码