Android listview how do I know which item I clicked and show in other activity -


i'm making android app, , have listview database json parsing. , want onclick item in listview open other activity, have no problem open new activity when item clicked. problem how don know item clicked , show item detail new activity.

public class items extends baseactivity {  private progressdialog pdialog; private arraylist<rowitem> rowitems = new arraylist<rowitem>(); private listview mylistview; private customlistadapter adapter;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_items);      pdialog = new progressdialog(this);     pdialog.setmessage("loading...");     pdialog.show();      response.listener<string> responselistener = new response.listener<string>() {         @override         public void onresponse(string response) {             try {                 jsonobject jsonresponse = new jsonobject(response);                 boolean error = jsonresponse.getboolean("error");                 system.out.println(jsonresponse.tostring());                 if (error){                     string errormessage = jsonresponse.getstring("message");                     alertdialog.builder builder = new alertdialog.builder(items.this);                     builder.setmessage(errormessage)                             .setnegativebutton("retry", null)                             .create()                             .show();                 }else {                     jsonarray itemset = jsonresponse.getjsonarray("itemset");                     (int = 0; < itemset.length(); i++){                         jsonobject item = itemset.getjsonobject(i);                         string title = item.getstring("title");                         string seller = item.getstring("nickname");                         string price = item.getstring("price");                         string itemid = item.getstring("itemid");                         string image_view = item.getstring("picpath");                         string path;                         jsonarray pic = item.getjsonarray("picpath");                         if (pic.length()==0)                         {                             path="uploads/default.jpg";                         }else {                             path = pic.getstring(0);                         }                         rowitem row=new rowitem(title,seller,price,image_view,path,itemid);                         rowitems.add(row);                      }                     mylistview = (listview) findviewbyid(r.id.list);                     customlistadapter adapter = new customlistadapter(items.this, rowitems);                     system.out.println(rowitems.isempty());                     mylistview.setadapter(adapter);                      mylistview.setonitemclicklistener(new adapterview.onitemclicklistener() {                         @override                         public void onitemclick(adapterview<?> parent, view view, int position, long id) {                             intent intent = new intent(items.this, itemdetail.class);                             string title = ((textview) view.findviewbyid(r.id.tv_title)).gettext().tostring();                             string seller = ((textview) view.findviewbyid(r.id.tv_seller)).gettext().tostring();                             string price = ((textview) view.findviewbyid(r.id.tv_price)).gettext().tostring();                              intent.putextra("title", title);                             intent.putextra("nickname", seller);                             intent.putextra("price", price);                             startactivity(intent);                          }                     });                 }             }catch (jsonexception e){                 e.printstacktrace();             }         }     };     intent intent = getintent();     arraylist<string> list =intent.getstringarraylistextra("userinfo");     system.out.println(list.tostring());     itemrequest itemrequest = new itemrequest(list.get(0),list.get(1),responselistener);     requestqueue queue = volley.newrequestqueue(items.this);     queue.add(itemrequest);      pdialog.dismiss(); } } 

i use adapter

public class customlistadapter extends baseadapter { private context context; private list<rowitem> rowitems; private layoutinflater inflater = null;  public static final string image_baseurl = "http://xxxxxxxxxxxxxxxxxxxxxxxx/";  private lrucache<integer, bitmap> imagecache; private requestqueue queue;  public customlistadapter(context context, list<rowitem> rowitems){     this.context=context;     this.rowitems=rowitems;     inflater = layoutinflater.from(context);      final int maxmemory = (int) (runtime.getruntime().maxmemory() / 1024);     final int cachesize = maxmemory / 8;     imagecache = new lrucache<>(cachesize);      queue = volley.newrequestqueue(context); } @override public int getcount() {     return rowitems.size(); }  @override public object getitem(int position) {     return rowitems.get(position); }  @override public long getitemid(int position) {     return rowitems.indexof(getitem(position)); }  private class viewholder{     imageview imageview;     textview tv_title;     textview tv_seller;     textview tv_price; }  @override public view getview(int position, view convertview, viewgroup parent) {      layoutinflater minflater = (layoutinflater) context.getsystemservice(activity.layout_inflater_service);      final rowitem row_pos = rowitems.get(position);     final viewholder holder;     system.out.print("=================================================================");     if (convertview==null){         convertview = minflater.inflate(r.layout.custom_layout, null);         holder = new viewholder();         holder.tv_title = (textview) convertview.findviewbyid(r.id.tv_title);         holder.tv_seller = (textview) convertview.findviewbyid(r.id.tv_seller);         holder.tv_price = (textview) convertview.findviewbyid(r.id.tv_price);          convertview.settag(holder);     }else {         holder = (viewholder) convertview.gettag();     }     holder.tv_title.settext(row_pos.gettv_title().tostring());     holder.tv_seller.settext(row_pos.gettv_seller().tostring());     holder.tv_price.settext(row_pos.gettv_price().tostring());      bitmap bitmap = imagecache.get(integer.parseint(row_pos.getitemid()));     holder.imageview = (imageview) convertview.findviewbyid(r.id.image_view);      if (bitmap != null){         holder.imageview.setimagebitmap(bitmap);         system.out.print("bitmap");     }else {         string imageurl = image_baseurl + row_pos.getpath();         imagerequest request = new imagerequest(imageurl, new response.listener<bitmap>() {             @override             public void onresponse(bitmap response) {                 holder.imageview.setimagebitmap(response);                 imagecache.put(integer.parseint(row_pos.getitemid()), response);                 system.out.print(row_pos.getitemid()+"this image");             }         }, 90, 90,                 bitmap.config.argb_8888,                 new response.errorlistener() {                     @override                     public void onerrorresponse(volleyerror error) {                         log.d("error", error.tostring());                     }                 });         queue.add(request);     }     return convertview; } } 

and how pass data grab database new activity? cannot display image form php. used volley library. this lisetview

if understand correctly, want transport data between 2 activities. can this:

//send data mylistview.setonitemclicklistener(new adapterview.onitemclicklistener() {     @override     public void onitemclick(adapterview<?> parent, view view, int position, long id) {         //get item , transform jsonbean         rowitem item= (rowitem) parent.getitematposition(position);                                  intent intent = new intent(items.this, itemdetail.class);         //put in intent,the item bean must implements serializable         intent .putextra("rowitem",item)         startactivity(intent);     }  //receive data (in activity of itemdetail) rowitem rowitem =(rowitem) getintent().getserializableextra("rowitem"); // rowitem,if want know position of item ,your alse can transport positon(put position in intent object). 

Comments