android - how to detect click on a listview and send data to another activity? -
basically want make sure user clicks on listview sends url youtube video activity show youtube api.
i know how send link activity
seen there @ least dozen links insert not know how do.
first activity
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); //creazione fullscreen activity requestwindowfeature(window.feature_no_title); getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, windowmanager.layoutparams.flag_fullscreen); setcontentview(r.layout.episodi_activity); //rimozione action bar if (build.version.sdk_int < 11){ getsupportactionbar().hide(); } string[] titoli = getintent().getstringarrayextra("titoli"); listview mylist = (listview) findviewbyid(r.id.list1); list<viewmodel> models = new arraylist<viewmodel>(); (int = 0; < titoli.length; i++) { string name = titoli[i]; viewmodel model = new viewmodel(name); models.add(model); } final arrayadapter<viewmodel> adapter = new arrayadapter<viewmodel>(this, android.r.layout.simple_list_item_1, models); final string[] values = new string[] { "gnu94b6edrs", "putenlr0vpi"}; mylist.setadapter(adapter); mylist.setonitemclicklistener(new adapterview.onitemclicklistener() { public void onitemclick(adapterview<?> arg0, view v, int position, long id) { intent video = new intent(episodiactivity.this,videoactivity.class); video.putextra("taglink", values[position]); startactivity(video); } }); second activity
public class videoactivity extends youtubebaseactivity implements youtubeplayer.oninitializedlistener { static private final string developer_key = "aizasybr-qh8hco8u_we_sipgheqigmbeyci7pq"; private string video; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.videoactivity); youtubeplayerview youtubeview = (youtubeplayerview) findviewbyid(r.id.youtube_video); youtubeview.initialize(developer_key, this); bundle video = getintent().getextras(); if(video != null && video.containskey("taglink")){ video.getstring("taglink"); } } public void oninitializationfailure(provider provider, youtubeinitializationresult error) { toast.maketext(this, "oh no! errore di connessione, provi rientrare"+error.tostring(), toast.length_long).show(); } @override public void oninitializationsuccess(provider provider, youtubeplayer player, boolean wasrestored) { player.loadvideo(video); } }
that's easy. have everything.
first pass link in intent loading listview several links need , arrayadapter:
listview mlist = (listview)findviewbyid(r.id.mlist); string[] labels = new string[] { "name 1", "name 2", "name 3"}; final string[] links = new string[] { "http://youtube.com/1", "http://youtube.com/2", "http://youtube.com/3"}; arrayadapter<string> arrayadapter = new arrayadapter<string>(this, android.r.layout.simple_list_item_1, labels); mlist.setadapter(arrayadapter); mlist.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { // todo auto-generated method stub intent mintent = new intent(localactivity.this, destinyactivity.class); mintent.putextra("taglink", links[position]); startactivity(mintent); } }); and then, read in destinyactivity use bundle in oncreate method:
bundle mbundle = getintent().getextras(); if(mbundle != null && mbundle.containskey("taglink")){ video = mbundle.getstring("taglink"); } use (private string video) past value.
Comments
Post a Comment