firebase database - Android Recyclerview, loading images from URls using Glide -


i able retrieve text data firebase, got difficulty in doing same images. using recycler view , below recycler adapter:

public class recyclerviewadapter extends recyclerview.adapter<recyclerviewadapter.myholder>{      list<listdata> listdata;      public recyclerviewadapter(list<listdata> listdata) {         this.listdata = listdata;     }      @override     public myholder oncreateviewholder(viewgroup parent, int viewtype) {         view view = layoutinflater.from(parent.getcontext()).inflate(r.layout.myview,parent,false);          myholder myholder = new myholder(view);         return myholder;     }       public void onbindviewholder(myholder holder, int position) {         listdata data = listdata.get(position);         holder.vname.settext(data.getname());         holder.vemail.settext(data.getemail());         holder.vaddress.settext(data.getaddress());      }      @override     public int getitemcount() {         return listdata.size();     }     class myholder extends recyclerview.viewholder{         textview vname , vaddress,vemail;         imageview thumbnail;           public myholder(view itemview) {             super(itemview);                vname = (textview) itemview.findviewbyid(r.id.vname);             thumbnail = (imageview) itemview.findviewbyid(thumbnail);             vemail = (textview) itemview.findviewbyid(r.id.vemail);             vaddress = (textview) itemview.findviewbyid(r.id.vaddress);          }     }   } 

and here activity code initialises process:

myref.addvalueeventlistener(new valueeventlistener() {             @override             public void ondatachange(datasnapshot datasnapshot) {                 list = new arraylist<>();                 // stringbuffer stringbuffer = new stringbuffer();                 for(datasnapshot datasnapshot1 :datasnapshot.getchildren()){                     userdetails userdetails = datasnapshot1.getvalue(userdetails.class);                     listdata listdata = new listdata();                     string name=userdetails.getname();                     string email=userdetails.getemail();                     string address=userdetails.getaddress();                     listdata.setname(name);                     listdata.setemail(email);                     listdata.setaddress(address);                     list.add(listdata);                     // toast.maketext(mainactivity.this,""+name,toast.length_long).show();                  }                  recyclerviewadapter recycler = new recyclerviewadapter(list);                 recyclerview.layoutmanager layoutmanager = new linearlayoutmanager(investmentdrawer.this);                 recyclerview.setlayoutmanager(layoutmanager);                 recyclerview.setitemanimator( new defaultitemanimator());                 recyclerview.setadapter(recycler);              }              @override             public void oncancelled(databaseerror error) {                 // failed read value                 //  log.w(tag, "failed read value.", error.toexception());             }         }); glide.with(this)              .load(imagedata)              .diskcachestrategy(diskcachestrategy.all)              .into(ivimgglide);         } 

i use url entered in database load images dynamically. using glide or picasso. below listdata class

public class listdata {      public string name;     public string address;     public string email;      public string imageurl;      public string getimageurl() {         return imageurl;     }      public void setimageurl(string imageurl) {         this.imageurl = imageurl;     }     public string getname() {         return name;     }      public void setname(string name) {         this.name = name;     }      public string getaddress() {         return address;     }      public void setaddress(string address) {         this.address = address;     }      public string getemail() {         return email;     }      public void setemail(string email) {         this.email = email;     } } 

you can use picasso or glide inside onbindviewholder

public class recyclerviewadapter extends recyclerview.adapter<recyclerviewadapter.myholder>{  list<listdata> listdata; context context;  public recyclerviewadapter(list<listdata> listdata,context context) {     this.listdata = listdata;     this.context = context; }  @override public myholder oncreateviewholder(viewgroup parent, int viewtype) {     view view = layoutinflater.from(parent.getcontext()).inflate(r.layout.myview,parent,false);      myholder myholder = new myholder(view);     return myholder; }   public void onbindviewholder(myholder holder, int position) {     listdata data = listdata.get(position);     holder.vname.settext(data.getname());     holder.vemail.settext(data.getemail());      holder.vaddress.settext(data.getaddress());        glide.with(context)          .load(data.getimageurl())          .diskcachestrategy(diskcachestrategy.all)          .into(holder.thumbnail);       //with picasso       picasso.with(context)       .load(data.getimageurl())       .into(holder.thumbnail);        // need define method getimageurl() image url in listdata }  @override public int getitemcount() {     return listdata.size(); } class myholder extends recyclerview.viewholder{     textview vname , vaddress,vemail;     imageview thumbnail;       public myholder(view itemview) {         super(itemview);            vname = (textview) itemview.findviewbyid(r.id.vname);         thumbnail = (imageview) itemview.findviewbyid(thumbnail);         vemail = (textview) itemview.findviewbyid(r.id.vemail);         vaddress = (textview) itemview.findviewbyid(r.id.vaddress);      } }    } 

remember need pass context parent activity adapter

in ondatachanged need set image url using setimageurl()

@override         public void ondatachange(datasnapshot datasnapshot) {             list = new arraylist<>();             // stringbuffer stringbuffer = new stringbuffer();             for(datasnapshot datasnapshot1 :datasnapshot.getchildren()){                 userdetails userdetails = datasnapshot1.getvalue(userdetails.class);                 listdata listdata = new listdata();                 string name=userdetails.getname();                 string email=userdetails.getemail();                 string address=userdetails.getaddress();                 string imageurl = userdetails.getimageurl();                 listdata.setname(name);                 listdata.setemail(email);                 listdata.setaddress(address);                 listdata.setimageurl(imageurl);                 list.add(listdata);                 // toast.maketext(mainactivity.this,""+name,toast.length_long).show();              }              recyclerviewadapter recycler = new recyclerviewadapter(list,getapplicationcontext());             recyclerview.layoutmanager layoutmanager = new linearlayoutmanager(investmentdrawer.this);             recyclerview.setlayoutmanager(layoutmanager);             recyclerview.setitemanimator( new defaultitemanimator());             recyclerview.setadapter(recycler);          } 

Comments

Popular posts from this blog

Sort a complex associative array in PHP -

vb.net - How to ignore if a cell is empty nothing -

recursion - Can every recursive algorithm be improved with dynamic programming? -