Picool Posté(e) 4 mars 2011 Share Posté(e) 4 mars 2011 Bonjour, nouveau jour nouveau soucis ^^. Je souhaites gérer dans une listeView le fait que si je clique sur un item cela lance un unique fichier java (un mediaplayer en fait) mais avec des vidéos différentes selon le choix. Pouvez m'indiquer comment faire ? Merci beaucoup Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 4 mars 2011 Share Posté(e) 4 mars 2011 Si tu classes tes vidéos (dans une BDD, ou en utilisant leur référence dans un Array, ... ) dans le même ordre que les éléments de ta liste, il te suffit de récupérer la position de l'élément cliqué via la méthode "setOnItemClickListener" et de lire la vidéo à cette position : taListe.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, final View view, int position, long id) { lireTaVideoAlaPosition(position); } }); C'est bien ça que tu veux? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Picool Posté(e) 4 mars 2011 Auteur Share Posté(e) 4 mars 2011 Si tu classes tes vidéos (dans une BDD, ou en utilisant leur référence dans un Array, ... ) dans le même ordre que les éléments de ta liste, il te suffit de récupérer la position de l'élément cliqué via la méthode "setOnItemClickListener" et de lire la vidéo à cette position : taListe.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, final View view, int position, long id) { lireTaVideoAlaPosition(position); } }); C'est bien ça que tu veux? Disons que j'ai un fichier java : package com.penspinning; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.widget.MediaController; import android.widget.VideoView; public class Mediaplayer extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.video); VideoView videoView = (VideoView) findViewById(R.id.VideoView); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoView); // Set video link (mp4 format ) Uri video = Uri.parse("mp4 video link"); videoView.setMediaController(mediaController); videoView.setVideoURI(video); videoView.start(); } } Et à la place de "mp4 video link", j'aimerai avoir une variable qui fait appel à l'élément cliqué dans l'activity précédente et qui donc donne la vidéo correspondant à l'item, je ne sais pas si je suis compréhensible ><. Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 4 mars 2011 Share Posté(e) 4 mars 2011 Il faut que tu te serves de l'Intent que tu utilises pour lancer l'Activity MediaPlayer, pour passer la valeur que tu souhaites Dans l'Activity appelante (celle où il y a la ListView): intent.putExtra("url", la_valeur_de_l_url_que_tu_veux_passer_a_l_autre_Activity); // .. startActivity(intent); Dans l'Activity appelée (MediaPlayer), dans le onCreate: Intent intent = getIntent(); Uri video = Uri.parse(intent.getStringExtra("url")); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Picool Posté(e) 4 mars 2011 Auteur Share Posté(e) 4 mars 2011 Ah merci beaucoup :D Par contre petite question encore ^^, comment fais tu pour appeler la classe mediaplayer à cet endroit ? Intent intent = new Intent(Tricks.this, Mediaplayer.class); switch (position) { case 0: intent.putExtra("url", "http://upload.penspinning.fr/tsuki.mp4"); startActivity(intent); Si c'est ça j'ai un soucis : "duplicate local variable intent" Au final j'ai résolu ça mais bon c'est pas terrible je pense, car je garde ca à la fin: if(intent != null) startActivity(intent); Lien vers le commentaire Partager sur d’autres sites More sharing options...
leken Posté(e) 13 mars 2011 Share Posté(e) 13 mars 2011 bonjour, je voudrais savoir si c'est possible de passer le valeur de la listview selectionner dans une variiable afin de l'utiliser ailleurs merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.