Question

Comment puis-je écouter de cliquer sur un événement ListView?

est ce que j'ai maintenant

ListView list = (ListView)findViewById(R.id.ListView01);  
...  
list.setAdapter(adapter);  

Quand je fais ce qui suit

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 pas faire quoi que ce soit en cliquant dessus.
Et tous ceux qui vivent dans le code d'une classe qui étend l'activité.

Était-ce utile?

La solution

Sur votre vue liste, utilisez setOnItemClickListener

Autres conseils

On suppose que l'objet ListView est lv, procédez comme 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 définir l'affichage gonflé méthode « cliquable » et « pouvoir écouter de cliquer sur » les événements dans votre getView de classe d'adaptateur ().

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

et déclarer l'auditeur de clic dans votre ListActivity comme suit,

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

Cela est vrai que lorsque vous personnalisez l'adaptateur par l'extension BaseAdapter.

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

Les deux réponses sont correctes avant moi - vous pouvez utiliser OnItemClickListener

.

Il est bon de noter que la différence entre OnItemClickListener et OnItemSelectedListener, tout en sonnant subtile, est en fait significatif, comme élément de sélection et de mise au point sont en relation avec le 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 jeter un oeil plus d'information sur le sujet.

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

Dans list_item.xml attribuer l'attribut android (pas listView!): OnClick comme ceci:

<RelativeLayout android:onClick="onClickDoSomething">

puis dans votre appel d'activité cette méthode:

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

Vous devez utiliser setOnItemClickListener quelqu'un a dit.
Le code devrait ressembler à ceci:

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();
    }
});

D'abord, la classe doit implémente le clic listenener:

implements OnItemClickListener

Définissez ensuite un écouteur au ListView

yourList.setOnItemclickListener(this);

Et enfin, créer la méthode 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

Utilisez api setOnItemClickListener () 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.
}

});

Dans Kotlin, ajoutez un écouteur à votre listView aussi simple que java

your_listview.setOnItemClickListener { parent, view, position, id ->   

    Toast.makeText(this, position, Toast.LENGTH_SHORT).show()

 }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top