Android(安卓)ListView下滑会报空指针异常
16lz
2022-06-16
运行截图
错误信息:
错误代码:
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开发环境配置教程
- android截图代码
- Android(安卓)学习笔记
- Android(安卓)5.1 去掉首次进入沉浸模式的提示
- Android之解决ViewPager2+PhotoView滑动图片花屏问题
- Android(安卓)tabLayout+recyclerView实现锚点定位
- 【源码分享下载】每日更新之Android应用源码之仿微信5.2布局
- android 布局文件中控件ID、name标签属性的命名包含“@”、“.”
- Android环境变量的设置