android - Having trouble implementing onClickListener for a custom ListAdapter Listview -


i having trouble implementing onitemclick listview . need open new activity on clicking item in listview , pass title/genre/rating/release year data new activity. know how can pass thumbnail image of clicked item in listview , display in new activity.

customlistadapter.java

public class customlistadapter extends baseadapter {     private activity activity;     private layoutinflater inflater;     private list<movie> movieitems;     imageloader imageloader = appcontroller.getinstance().getimageloader();      public customlistadapter(activity activity, list<movie> movieitems) {         this.activity = activity;         this.movieitems = movieitems;     }      @override     public int getcount() {         return movieitems.size();     }      @override     public object getitem(int location) {         return movieitems.get(location);     }      @override     public long getitemid(int position) {         return position;     }      @override     public view getview(int position, view convertview, viewgroup parent) {          if (inflater == null)             inflater = (layoutinflater) activity                     .getsystemservice(context.layout_inflater_service);         if (convertview == null)             convertview = inflater.inflate(r.layout.list_row, null);          if (imageloader == null)             imageloader = appcontroller.getinstance().getimageloader();         networkimageview thumbnail = (networkimageview) convertview                 .findviewbyid(r.id.thumbnail);         textview title = (textview) convertview.findviewbyid(r.id.title);         textview rating = (textview) convertview.findviewbyid(r.id.rating);         textview genre = (textview) convertview.findviewbyid(r.id.genre);         textview year = (textview) convertview.findviewbyid(r.id.releaseyear);          // getting movie data row         movie m = movieitems.get(position);          // thumbnail image         thumbnail.setimageurl(m.getthumbnailurl(), imageloader);          // title         title.settext(m.gettitle());          // rating         rating.settext("rating: " + string.valueof(m.getrating()));          // genre         string genrestr = "";         (string str : m.getgenre()) {             genrestr += str + ", ";         }         genrestr = genrestr.length() > 0 ? genrestr.substring(0,                 genrestr.length() - 2) : genrestr;         genre.settext(genrestr);          // release year         year.settext(string.valueof(m.getyear()));          return convertview;     }  } 

main2activity.java

public class main2activity extends appcompatactivity  {     // log tag     private static final string tag = main2activity.class.getsimplename();      // movies json url     private static final string url = "http://api.androidhive.info/json/movies.json";     private progressdialog pdialog;     private list<movie> movielist = new arraylist<movie>();     private listview listview;     private customlistadapter adapter;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main2);          listview = (listview) findviewbyid(service_list);         adapter = new customlistadapter(this, movielist);         listview.setadapter(adapter);           pdialog = new progressdialog(this);         // showing progress dialog before making http request         pdialog.setmessage("loading...");         pdialog.show();          // changing action bar color         //getactionbar().setbackgrounddrawable(                 //new colordrawable(color.parsecolor("#1b1b1b")));          // creating volley request obj         jsonarrayrequest moviereq = new jsonarrayrequest(url,                 new response.listener<jsonarray>() {                     @override                     public void onresponse(jsonarray response) {                         log.d(tag, response.tostring());                         hidepdialog();                          // parsing json                         (int = 0; < response.length(); i++) {                             try {                                  jsonobject obj = response.getjsonobject(i);                                 movie movie = new movie();                                 movie.settitle(obj.getstring("title"));                                 movie.setthumbnailurl(obj.getstring("image"));                                 movie.setrating(((number) obj.get("rating"))                                         .doublevalue());                                 movie.setyear(obj.getint("releaseyear"));                                  // genre json array                                 jsonarray genrearry = obj.getjsonarray("genre");                                 arraylist<string> genre = new arraylist<string>();                                 (int j = 0; j < genrearry.length(); j++) {                                     genre.add((string) genrearry.get(j));                                 }                                 movie.setgenre(genre);                                  // adding movie movies array                                 movielist.add(movie);                              } catch (jsonexception e) {                                 e.printstacktrace();                             }                          }                          // notifying list adapter data changes                         // renders list view updated data                         adapter.notifydatasetchanged();                     }                 }, new response.errorlistener() {             @override             public void onerrorresponse(volleyerror error) {                 volleylog.d(tag, "error: " + error.getmessage());                 hidepdialog();              }         });          // adding request request queue         appcontroller.getinstance().addtorequestqueue(moviereq);     }      @override     public void ondestroy() {         super.ondestroy();         hidepdialog();     }      private void hidepdialog() {         if (pdialog != null) {             pdialog.dismiss();             pdialog = null;         }     } } 

you can send whole object movieitem , position of item click in next activity can extract them this.

 listview.setonitemclicklistener(new onitemclicklistener(){              @override             public void onitemclick(adapterview<?> p1, view p2, int p3, long p4)             {                 intent=new intent(getbasecontext(),nextactivity.class);             intent.putparcelablearraylistextra("key", movielist); intent.putextra("intkey",p3);             }         }); 

Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -