I'm trying to set an image for each CardView
item in my RecyclerView
.
Here's my onBindViewHolder
:
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Masar masar=masrList.get(position);
holder.masarName.setText(masar.getMasarTitle());
holder.masarDesc.setText(masar.getMasarDescreption());
// why i'm getting error here
holder.masarImg.setImageDrawable(masar.getMasarImg());
}
And here's my class model:
public class Masar {
public String masarTitle;
public String masarDescreption;
public int masarImg;
public Masar(String masarTitle, String masarDescreption) {
this.masarTitle = masarTitle;
this.masarDescreption = masarDescreption;
}
public Masar(String masarTitle, String masarDescreption, int masarImg) {
this.masarTitle = masarTitle;
this.masarDescreption = masarDescreption;
this.masarImg = masarImg;
}
public String getMasarTitle() {
return masarTitle;
}
public String getMasarDescreption() {
return masarDescreption;
}
public int getMasarImg() {
return masarImg;
}
public void setMasarImg(int masarImg) {
this.masarImg = masarImg;
}
}
Could you please tell me why I'm getting error?
And what's the right method to do it?
instead of using holder.masarImg.setImageDrawable(masar.getMasarImg());
Use
holder.masarImg.setImageDrawable(getResources().getDrawable(masar.getMasarImg()));
or
holder.masarImg.setImageResource(masar.getMasarImg());
Note: to get getResources()
use context