Set image dynamically in a listview by retrieving image name from a data source in android -


what best way retrieve images drawable folder while name of images stored in db , show them in listview ?

suppose have 3 pictures in drawable folder , names stored in db as:

  • pic1.jpeg

  • image2.jpeg

  • another_image.jpeg

i have method called getallimages() retrieve image names , return them cursor db:

public cursor getallimages(){ string sql = "select iid _id," + column_img_desc + "," + column_img_name + " " + table_name";     cursor cursor = db.rawquery(sql, null);     if(cursor != null)         cursor.movetofirst();      return cursor; } 

where column_img_desc image description , column_img_name name of image stored in db

then have cursoradapter tried map images , descriptions listview:

    listview customlistview = (listview)findviewbyid(r.id.lvcustom);         string[] = { databasehelper.column_img_desc, databasehelper.column_img_name};             int[] = {r.id.ivimg, r.id.tvtitle};             simplecursoradapter cursoradapter = new simplecursoradapter(this, r.layout.custom_listview, cursor, from, to, 0);  cursoradapter.setviewbinder(new simplecursoradapter.viewbinder() {             @override             public boolean setviewvalue(view view, cursor cursor, int columnindex) {                 imageview imageimageview = (imageview)findviewbyid(r.id.ivimg);                  string imagevalue = cursor.getstring(1); //get image names                 int[] imgresourceids = new int[cursor.getcolumncount()]; //initialize array resource ids                 string images[] = new string[cursor.getcolumncount()];  //initialize array image names                     for(int i=0; i<cursor.getcolumncount(); i++){                     images[i] = imagevalue; //store image names initialized array                     imgresourceids[i] = getresources().getidentifier(images[i], "drawable", packagename); //get image name                     imageimageview.setimageresource(imgresourceids[i]); //set image imageview                 }                  return true;             }         });              customlistview.setadapter(cursoradapter); 

but got result: how tan solve this? enter image description here

thanks in advance :)

you can image drawable folder dynamic name way:

resources.getidentifier(string imagename, string folder, string package); 

this returns integer same way type

r.drawable.imagename; 

an example of how use it:

bitmap bitmap[] = new bitmap[5];  (int = 0; < 5; i++)     bitmap[i] = bitmapfactory.decoderesource(         resources,          resources.getidentifier("pic" +i, "drawable", "com.example.com"))); 

this gets images "pic0.png", "pic1.png" ... until "pic4.png", of course can customize way want


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -