Reputation: 973
( i have image in res/drawable, the name of image in database) I've done to display image from res/drawable to listview, but images appear same picture.. i want display difference image from the others....
how to change image id from drawable folder (using setImageResource()). My drawable folder contains more than 1 image and i want to change these images using name in database already stored..
here is my code from tutorial...
//the result from database (image2.jpg)
public KontakItemListBaseAdapter(Context context, ArrayList<KontakItemDetails> results) {
itemDetailsrrayList = results;
l_Inflater = LayoutInflater.from(context);
}
public int getCount() {
return itemDetailsrrayList.size();
}
public Object getItem(int position) {
return itemDetailsrrayList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
try{
ViewHolder holder;
if (convertView == null) {
convertView = l_Inflater.inflate(R.layout.kontak_details_view, null);
holder = new ViewHolder();
holder.txt_itemName = (TextView) convertView.findViewById(R.id.name);
holder.txt_itemDescription = (TextView) convertView.findViewById(R.id.itemDescription);
holder.itemImage = (ImageView) convertView.findViewById(R.id.photo);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txt_itemName.setText(itemDetailsrrayList.get(position).getName());
holder.txt_itemDescription.setText(itemDetailsrrayList.get(position).getItemDescription());
holder.itemImage.setImageResource(R.drawable.iddy);
}catch (Exception ex) {
throw new Error("kontakitemlistadapter :"+ex.toString());
}
return convertView;
}
static class ViewHolder {
TextView txt_itemName;
TextView txt_itemDescription;
TextView txt_itemPrice;
ImageView itemImage;
}
i think my problem is here..
holder.itemImage.setImageResource(R.drawable.iddy);
how to change R.drawable.iddy to be path name??
Upvotes: 2
Views: 3129
Reputation: 1633
Change the drawable reference based on the context
holder.itemImage.setImageResource(R.drawable.iddy);
Upvotes: 0
Reputation: 132972
you can get all Drawables id's in an Arrays as :
private Integer[] images;
Field[] list = R.drawable.class.getFields();
int count = 0, index = 0, j = list.length;
images = new Integer[count];
try {
for(int i=0; i < j; i++)
images[index++] = list[i].getInt(null);
} catch(Exception e) {}
now use images Array for setting Image src in getView method of Adapter as:
holder.itemImage.setImageResource(images[position]);
Upvotes: 1