REcycleView空指针异常

REcycleView空指针异常

public class MyRvAdapter1 extends RecyclerView.Adapter<MyRvAdapter1.ViewHolder> {

   private LayoutInflater mInflater;
   private List<MovieBean> mDatas;
   private Context mContext;
   private RequestOptions options;

   public MyRvAdapter1(Context context, List<MovieBean> datas) {
       Log.i("123", "MyRvAdapter1:构造 "+datas.size());
       this.mContext=context;
       this.mDatas = datas;
       mInflater = LayoutInflater.from(context);
       options=new RequestOptions()
               .placeholder(R.drawable.ic_launcher_background)
               .error(new ColorDrawable(Color.BLACK));
   }

   @NonNull
   @Override
   public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
       return new MyRvAdapter1.ViewHolder(mInflater.inflate(R.layout.item_movies01, parent, false));
   }

   @Override
   public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
       Log.i(MainActivity.TAG, "onBindViewHolder: "+
               mDatas.get(position).getImageUrl()+"/n"+
               mDatas.get(position).getRating().getAverage()+"/n"+
               mDatas.get(position).getTitle()+"/n"
       );
       Glide.with(mContext)
               .load(mDatas.get(position).getImageUrl())
               .apply(options)
               .into(holder.idRv01Img);
       holder.idRv01Title.setText(mDatas.get(position).getTitle());
       holder.idRv01Ratingbar.setRating(mDatas.get(position).getRating().getAverage()/2);
       holder.idRv01Rating.setText(mDatas.get(position).getRating().getAverage()+"");
   }

   @Override
   public int getItemCount() {
       return mDatas.size();
   }


   static class ViewHolder extends RecyclerView.ViewHolder{
       @BindView(R.id.id_rv01_img)
       ImageView idRv01Img;
       @BindView(R.id.id_rv01_title)
       TextView idRv01Title;
       @BindView(R.id.id_rv01_ratingbar)
       RatingBar idRv01Ratingbar;
       @BindView(R.id.id_rv01_rating)
       TextView idRv01Rating;

       public ViewHolder(View view) {
           super(view);
           ButterKnife.bind(this, view);
       }
   }
}

http://img1.sycdn.imooc.com//climg/5b0e5a13000106f209260694.jpg


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 CV工程师鱼 2018-05-30 16:39:33

http://img1.sycdn.imooc.com//climg/5b0e632f0001cddb09970919.jpg

我发现我用ButterKnife绑定的控件都失败了。。

  • 提问者 CV工程师鱼 #1
    我自己gradle文件里面写漏了。。
    2018-05-30 16:43:03
好帮手慕雪 2018-05-30 16:31:20

你找一下idRecycleview是怎么获取的,是不是没有初始化呢。

  • 提问者 CV工程师鱼 #1
    通过ButterKnif获取的呀: @BindView(R.id.id_edt_search) EditText idEdtSearch; @BindView(R.id.id_spinner) Spinner idSpinner; @BindView(R.id.id_img_search) ImageView idImgSearch; @BindView(R.id.id_tv_title) TextView idTvTitle; @BindView(R.id.id_tv_back) TextView idTvBack; @BindView(R.id.id_recycleview) RecyclerView idRecycleview;
    2018-05-30 16:34:16
  • 提问者 CV工程师鱼 #2
    我发现我改成findviewByID获取就没问题了。。
    2018-05-30 16:36:43
  • 提问者 CV工程师鱼 #3
    老师你看下这个问题里的另一个回复,为什么ButterKnife绑定失败?
    2018-05-30 16:40:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android数据通信开发与应用2018版
  • 参与学习           人
  • 提交作业       147    份
  • 解答问题       687    个

本专题介绍了Android开发核心组件:广播、服务及全局应用。教会你如何使用AIDL、Thread、Socket、蓝牙解决进程线程间通信问题。利用Glide等实现异步加载及NDK原生代码开发。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师