android - How do I get data from HashMap to pass to next Activity? -
i wish pass data 1 listview activity next activity, i.e. when item clicked in list, data such title or thumb_url (an image remote database) can passed detail activity.
in example below, these items set out in hashmap.
what code pass above data activity, using intent?
i'm puzzled because these data items laid out in hashmap.
public class customizedlistview extends activity { // static variables static final string url = "http://padihamcars.com/music.xml"; // xml node keys static final string key_song = "song"; // parent node static final string key_id = "id"; static final string key_title = "title"; static final string key_artist = "artist"; static final string key_duration = "duration"; static final string key_thumb_url = "thumb_url"; listview list; lazyadapter adapter; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); final arraylist<hashmap<string, string>> songslist = new arraylist<hashmap<string, string>>(); xmlparser parser = new xmlparser(); string xml = parser.getxmlfromurl(url); // getting xml url document doc = parser.getdomelement(xml); // getting dom element nodelist nl = doc.getelementsbytagname(key_song); // looping through song nodes <song> (int = 0; < nl.getlength(); i++) { // creating new hashmap hashmap<string, string> map = new hashmap<string, string>(); element e = (element) nl.item(i); // adding each child node hashmap key => value map.put(key_id, parser.getvalue(e, key_id)); map.put(key_title, parser.getvalue(e, key_title)); map.put(key_artist, parser.getvalue(e, key_artist)); map.put(key_duration, parser.getvalue(e, key_duration)); map.put(key_thumb_url, parser.getvalue(e, key_thumb_url)); // adding hashlist arraylist songslist.add(map); } list=(listview)findviewbyid(r.id.list); // getting adapter passing xml data arraylist adapter=new lazyadapter(this, songslist); list.setadapter(adapter); // click event single list row list.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { }
try :-
list.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { hashmap<string, string> map = songslist.get(position); intent intent = new intent(youractivity.this, myotheractivity.class); intent.putextra("map", map); startactivity(intent); } and in receiving activity:
protected void oncreate(bundle bundle) { super.oncreate(savedinstancestate); intent intent = getintent(); hashmap<string, string> hashmap = (hashmap<string, string>)intent.getserializableextra("map"); log.v("hashmaptest", hashmap.get("key")); }
Comments
Post a Comment