Comment gérer ListView cliquez sur Android

Comment écouter un événement de clic sur un ListView?

C'est ce que j'ai maintenant

  • Changer fillColor à partir du vecteur dans Android, par programme
  • Obtenez des groupes de contact?
  • Comment lire un fichier vidéo dans Android?
  • Comment utiliser AsyncTask pour afficher un ProgressDialog tout en effectuant des travaux d'arrière plan dans Android?
  • Comment puis-je donner un style audacieux dans Android?
  • Comment dessiner un triangle rempli dans la toile Android?
  • ListView list = (ListView)findViewById(R.id.ListView01); ... list.setAdapter(adapter); 

    Quand je fais le suivant

     list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView parentView, View childView, int position, long id) { setDetail(position); } public void onNothingSelected(AdapterView parentView) { } }); 

    Cela ne semble rien faire sur le clic.
    Et tous ces codes vivent dans une classe qui étend l'activité.

  • Comment être averti quand une transition entre les activités a été terminée?
  • Impossible de démarrer le service - Nécessite le paramètre de sécurité ACCESS_MOCK_LOCATION
  • Obtenez la hauteur de l'écran dans Android
  • AlarmManager cesse de fonctionner dans Android 4.4.2 (en utilisant SetExact ())
  • Comment transférer un tableau vers une autre activité?
  • Application Android pour téléphone et tablette: 1 ou 2 applications?
  • 8 Solutions collect form web for “Comment gérer ListView cliquez sur Android”

    Sur la vue de votre liste, utilisez setOnItemClickListener

    Supposons que l'objet ListView soit lv, faites ce qui suit:

     lv.setClickable(true); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { Object o = lv.getItemAtPosition(position); /* write you handling code like... String st = "sdcard/"; File f = new File(st+o.toString()); // do whatever u want to do with 'f' File object */ } }); 

    Vous devez configurer la vue gonflable "Clickable" et "capable d'écouter des événements de clic" dans votre méthode de classe d'adaptateur getView ().

     convertView = mInflater.inflate(R.layout.list_item_text, null); convertView.setClickable(true); convertView.setOnClickListener(myClickListener); 

    Et déclarer l'écouteur de clics dans votre ListActivity comme suit,

     public OnClickListener myClickListener = new OnClickListener() { public void onClick(View v) { //code to be written to handle the click event } }; 

    Ceci est vrai uniquement lorsque vous personnalisez l'adaptateur en étendant BaseAdapter.

    Reportez-vous à ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java pour plus de détails

    Les deux réponses avant la mienne sont correctes – vous pouvez utiliser OnItemClickListener .

    Il est bon de noter que la différence entre OnItemClickListener et OnItemSelectedListener , tout en étant subtile, est en fait significative, car la sélection d'élément et la mise au point sont liées au mode tactile de votre AdapterView .

    Par défaut, en mode tactile, il n'y a pas de sélection et de mise au point. Vous pouvez consulter ici plus d'informations sur le sujet.

    Vous devez utiliser setOnItemClickListener quelqu'un a déclaré.
    Le code devrait être comme suit:

     listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // When clicked, show a toast with the TextView text or do whatever you need. Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show(); } }); 

    Tout d'abord, la classe doit implémenter l'écoute des clics:

     implements OnItemClickListener 

    Ensuite, configurez un auditeur dans ListView

     yourList.setOnItemclickListener(this); 

    Et enfin, créez la méthode de clic:

     @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "You Clicked at " +countries[+ position], Toast.LENGTH_SHORT).show(); } 

    Vous pouvez regarder et télécharger le code ici

    Cette solution est vraiment minimaliste et ne gâche pas votre code.

    Dans votre liste_item.xml (NOT listView!), Attribuez l'attribut android: onCliquez comme ceci:

     <RelativeLayout android:onClick="onClickDoSomething"> 

    Ensuite, dans votre activité, appelez cette méthode:

     public void onClickDoSomething(View view) { // the view is the line you have clicked on } 

    Utilisez setOnItemClickListener () api dans votre activité. Voici l'exemple.

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){ @Override public void onItemClick(AdapterView<> parent, View view, int position, long id) { // your code here. } }); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.