android - Getting only last item of List View -
i've parsing xml inside listfragment
, it's working fine onlistitemclick
throwing last item, i've searched did not found matches case.
this inside onpostexecute
:
xmldomparser parser = new xmldomparser(); inputstream stream = new bytearrayinputstream(xml.getbytes()); document doc = parser.getdocument(stream); nodelist nodelist = doc.getelementsbytagname(key_item); newss = new arraylist<news>(); news = null; (int = 0; < nodelist.getlength(); i++) { news = new news(); element e = (element) nodelist.item(i); news.setid(parser.getvalue(e, key_id)); news.setdate(parser.getvalue(e, key_date)); news.settitle(parser.getvalue(e, key_title)); news.setdescription(parser.getvalue(e, key_desc)); newss.add(news); } listviewadapter = new newsadapter(getactivity(), newss); getlistview().setadapter(listviewadapter); pdialog.dismiss();
onitemclick
inside same fragment:
`@override public void onlistitemclick(listview l, view v, int position, long id) { toast.maketext(getactivity(), "list: "+news.getid(), toast.length_short).show(); intent in = new intent(getactivity(), singlenewsactivity.class); in.putextra(key_id, news.getid()); in.putextra(key_date, news.getdate()); in.putextra(key_title, news.gettitle()); in.putextra(key_desc, news.getdescription()); startactivity(in); }`
my newsadapter
:
public class newsadapter extends baseadapter { activity context; list<news> newss; public newsadapter (activity context, list<news> newss) { this.context = context; this.newss = newss; }
// private view holder class private class viewholder { textview tvnewsdate; textview tvnewstitle; } public int getcount() { return newss.size(); } public object getitem(int position) { return newss.get(position); } public long getitemid(int position) { return newss.indexof(getitem(position)); } public view getview(int position, view convertview, viewgroup parent) { viewholder holder; layoutinflater inflater = context.getlayoutinflater(); if (convertview == null) { convertview = inflater.inflate(r.layout.news_item, null); holder = new viewholder(); holder.tvnewsdate = (textview) convertview.findviewbyid(r.id.tvnewsdate); holder.tvnewstitle = (textview) convertview.findviewbyid(r.id.tvnewstitle); convertview.settag(holder); } else { holder = (viewholder) convertview.gettag(); } news newss = (news) getitem(position); holder.tvnewsdate.settext(newss.getdate()); holder.tvnewstitle.settext(newss.gettitle()); return convertview; }
}`
imageview
setonclicklistner
inside other adapter same problem:
holder.ivgps.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { uri gmmintenturi = uri.parse("google.navigation:q=" + parkcoordinates); intent mapintent = new intent(intent.action_view, gmmintenturi); mapintent.setpackage("com.google.android.apps.maps"); context.startactivity(mapintent); } });
thank you!
please try news = newss.get(position) , use in onlistitemclick may work..
`@override public void onlistitemclick(listview l, view v, int position, long id) { news = newss.get(position) intent in = new intent(getactivity(), singlenewsactivity.class); in.putextra(key_id, news.getid()); in.putextra(key_date, news.getdate()); in.putextra(key_title, news.gettitle()); in.putextra(key_desc, news.getdescription()); startactivity(in); }`
Comments
Post a Comment