java - Load fetched Images into listView Using SimpleAdapter -


i'm stuck problem. fetched image web url(though localhost) , other stuffs too. however, other stuffs showed images not. can't figured out what's wrong. i'm posting code of class. check out. here code:

public void updatejsondata() {      int success;     bitmap photo = null;      intent in = getintent();     bundle extras = in.getextras();     string city = extras.getstring("city");     log.d(tag, "city received: " + city);      try {          jsonparser jparser = new jsonparser();         list<namevaluepair> params = new arraylist<namevaluepair>();         params.add(new basicnamevaluepair("city", city));          jsonobject json = jparser.makehttprequest(fetch_hostel_url, "post",                 params);         log.d("json response", json.tostring());          success = json.getint(tag_success);         if (success == 1) {              mhostels = json.getjsonarray(tag_hostels);             mhostellist = new arraylist<hashmap<string, object>>();              (int = 0; < mhostels.length(); i++) {                 jsonobject c = mhostels.getjsonobject(i);                  drawable d = null;                 string hos_name = c.getstring(tag_name);                 string hos_rent = c.getstring(tag_rent);                 // string hos_img = c.getstring(tag_img);                 string hos_imgurl = "http://192.168.2.10:80/homey_uploads/avtars/img_-137606592.jpg";                  try {                      getbitmapfromurl(hos_imgurl);                     photo = bmp;                     citycap.setimagebitmap(photo);                  } catch (exception ex) {                     log.d(tag, "bitmap not received");                 }                  hashmap<string, object> map = new hashmap<string, object>();                 map.put(tag_name, hos_name);                 map.put(tag_rent, hos_rent);                 map.put(tag_img, photo);                  mhostellist.add(map);                 log.d(tag, "map addedd!!" + mhostellist.tostring());             }         } else if (success == 0) {             log.d(tag, "fetch failure!!");             done = false;             msg = json.getstring(tag_message);         }      } catch (exception e) {         log.d(tag, "exception occured:" + e.tostring());         done = false;     } }  private static bitmap getbitmapfromurl(string hos_imgurl) throws ioexception {      url imgurl = new url(hos_imgurl);     log.d(tag, "image url:" + imgurl.tostring());     httpurlconnection conn = (httpurlconnection) imgurl.openconnection();     conn.setdoinput(true);     conn.connect();      conn.setconnecttimeout(30000);     conn.setreadtimeout(30000);      inputstream = conn.getinputstream();     bmp = bitmapfactory.decodestream(is);      return bmp; }  public void updatelist() {      // lazyadapter adapter = new lazyadapter(searchresult.this,     // mhostellist);      listadapter adapter = new simpleadapter(searchresult.this, mhostellist,             r.layout.single_hostel, new string[] { tag_name, tag_rent,                     tag_img }, new int[] { r.id.tv_h_name, r.id.tv_h_rent,                     r.id.iv_h_frontpic });      simpleadapter.viewbinder viewbinder = new simpleadapter.viewbinder() {          @override         public boolean setviewvalue(view view, object data,                 string textrepresentation) {             if (view.getid() == r.id.tv_h_name) {                 ((textview) view).settext((string) data);                 return true;             } else if (view.getid() == r.id.tv_h_rent) {                 ((textview) view).settext((string) data);             } else if (view.getid() == r.id.iv_h_frontpic) {                 ((imageview) view).setimagebitmap((bitmap) data);             }             return false;         }     };     ((simpleadapter) adapter).setviewbinder(viewbinder);      setlistadapter(adapter);      listview lv = getlistview();     lv.setonitemclicklistener(new onitemclicklistener() {          @override         public void onitemclick(adapterview<?> parent, view view,                 int position, long id) {              intent intent = new intent(searchresult.this,                     hdetailtabactivity.class);             startactivity(intent);         }     });  }  public class loadhostels extends asynctask<void, void, boolean> {      @override     protected void onpreexecute() {          super.onpreexecute();         pdialog = new progressdialog(searchresult.this);         pdialog.setmessage("loading hostels");         pdialog.setindeterminate(false);         pdialog.setcancelable(true);         pdialog.show();     }      @override     protected boolean doinbackground(void... arg0) {          updatejsondata();         return null;     }      @override     protected void onpostexecute(boolean result) {         super.onpostexecute(result);          pdialog.dismiss();         if (done != true) {             toast.maketext(searchresult.this, "error:" + msg,                     toast.length_long).show();         } else if (done = true) {             updatelist();         }     }  } 

logcat says unable decodestream when set image imageview itshowed up. attaching logcat:

04-12 14:38:34.857: d/tracking...(8616): map addedd!![{h_img=android.graphics.bitmap@4149d108, h_name=m r hostel, h_d_mrent=4500}, {h_img=android.graphics.bitmap@41600b78, h_name=hostel of achievers, h_d_mrent=3500}, {h_img=android.graphics.bitmap@414edd18, h_name=hostel of care, h_d_mrent=2500}] 04-12 14:38:34.860: d/openglrenderer(8616): flushing caches (mode 0) 04-12 14:38:34.898: e/bitmapfactory(8616): unable decode stream: java.io.filenotfoundexception: /android.graphics.bitmap@4149d108: open failed: enoent (no such file or directory) 04-12 14:38:34.898: i/system.out(8616): resolveuri failed on bad bitmap uri: android.graphics.bitmap@4149d108 04-12 14:38:34.914: e/bitmapfactory(8616): unable decode stream: java.io.filenotfoundexception: /android.graphics.bitmap@41600b78: open failed: enoent (no such file or directory) 04-12 14:38:34.914: i/system.out(8616): resolveuri failed on bad bitmap uri: android.graphics.bitmap@41600b78 04-12 14:38:34.929: e/bitmapfactory(8616): unable decode stream: java.io.filenotfoundexception: /android.graphics.bitmap@414edd18: open failed: enoent (no such file or directory) 04-12 14:38:34.929: i/system.out(8616): resolveuri failed on bad bitmap uri: android.graphics.bitmap@414edd18 

please help!!!

simpleadapter doesn't support setting bitmaps imageviews out of box -- resource id or string url.

so, need extend simpleadapter.viewbinder provide own binding logic:

simpleadapter.viewbinder viewbinder = new simpleadapter.viewbinder() {     @override     public boolean setviewvalue(view view, object data, string textrep) {         if (view.getid() == r.id.tv_h_name) {             ((textview)view).settext((string)data);             return true;         } else if (view.getid() == r.id.tv_h_rent) {             // same here         } else if (view.getid() == r.id.iv_h_frontpic) {             ((imageview)view).setimagebitmap((bitmap)data);             return true;         }         return false;     } } ((simpleadapter)adapter).setviewbinder(viewbinder); 

Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -