问题描述
想配合RecyclerView使用但是在onBindViewHolder方法中
@Override public void onBindViewHolder(MyViewHolder holder, int position) {Utility.getImageLoader().displayImage(newses.get(position).getImages().get(0),holder.news_image,Utility.getDisplayImageOptions());holder.news_title.setText(newses.get(position).getTitle()); }
会出现此问题
java.lang.NullPointerException: Attempt to invoke interface method ’java.lang.Object java.util.List.get(int)’ on a null object reference at com.example.axtonsun.zhihudaily.Adapter.RvAdapter.onBindViewHolder(RvAdapter.java:39) at com.example.axtonsun.zhihudaily.Adapter.RvAdapter.onBindViewHolder(RvAdapter.java:20) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5768) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5801) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5037)
在Utility.getImageLoader()中
public static ImageLoader getImageLoader() {return ImageLoader.getInstance(); } public static DisplayImageOptions getDisplayImageOptions() {return new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.start0) //设置图片在下载期间显示的图片.showImageForEmptyUri(R.drawable.start1)//设置图片Uri为空或是错误的时候显示的图片.showImageOnFail(R.drawable.start2) //设置图片加载/解码过程中错误时候显示的图片.displayer(new FadeInBitmapDisplayer(0))//是否图片加载好后渐入的动画时间.cacheInMemory(true).cacheOnDisk(true).build(); }
public void displayImage(String uri,ImageView imageView,DisplayImageOptionsoptions) 第一个参数是String类型的URL
那我我该怎么在onBindViewHolder的 newses.get(position).getImages().get(0) 修改 为正确的 新手不太懂
问题解答
回答1:你这是报空指针异常,你看下你的newses是否为空
回答2:用debug调试,打个端点看看newses 的值。NullPointerException 凭经验讲,这东西跟RecyclerView 没啥关系,跟数据有关。