141 votes

Android ListView cliquez sur HOWTO?

Comment faire pour écouter cliquez sur l'événement sur une ListView?

C'est ce que j'ai maintenant

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

Quand je fais la suite

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

   public void onNothingSelected(AdapterView parentView) {  

   }  
});  

Qui ne semble pas faire quoi que ce soit sur cliquez sur.
Et tous ceux du code de vivre au sein d'une classe qui étend la classe de l'Activité.

185voto

David Hedlund Points 66192

Sur votre liste d'affichage, utilisez setOnItemClickListener

91voto

Aditya Mehta Points 551

Supposons que ListView objet est lv, ne les suivants: -

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
    */  
  }
});

42voto

Vijay C Points 1886

Vous devez définir le gonflés vue "Cliquables" et "en mesure de l'écouter cliquez sur événements" dans votre classe d'adaptateur getView ().

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

et de 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
    }
};

Cela est vrai uniquement lorsque vous êtes à la personnalisation de la Carte par l'extension de BaseAdapter.

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

17voto

Dimitar Dimitrov Points 6587

Les deux réponses avant le mien sont corrects - vous pouvez utiliser OnItemClickListener.

Il est bon de noter que la différence entre OnItemClickListener et OnItemSelectedListener, tout en sonnant subtile, est en fait important, comme élément de sélection et de mise au point sont liés avec le mode tactile de votre AdapterView.

Par défaut, en mode tactile, il n'y a pas de sélection et de concentration. Vous pouvez prendre un coup d'oeil ici pour plus d'info sur le sujet.

7voto

Shudy Points 491

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X