2009-11-10 4 views
2

J'ai une liste d'articles que j'ai récupérés de ma base de données Sqlite ... Je veux définir un événement Click pour chaque article. Comment puis-je personnaliser cet événement en fonction de l'élément cliqué ???? Soyez descriptif ... Je suis un débutant.ListView Click événement

C'est la méthode que je l'habitude de remplir les données dans ma liste:

private void fillData() { 
    db = new DBAdapter(this); 
    db.open(); 
    ArrayList db_results = new ArrayList(); 
    //All Category 
    //Cursor cursor = db.getAllTitles(); 

    //Single Category 
    Cursor cursor = db.getTitle(1); 
    if (cursor.moveToFirst()) 
    { 
     do {   
      db_results.add(cursor.getString(4)); 
     } while (cursor.moveToNext()); 
    } 
    cursor.close(); 

    this.list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, db_results)); 
} 
+0

Quel est le comportement différent que vous voulez lorsque vous cliquez sur les différents éléments de la liste? Cette question est confuse pour moi. – I82Much

Répondre

4

Appel setOnItemClickListener() sur le ListView. L'écouteur AdapterView.OnItemClickListener que vous fournissez recevra la position (0 -based index) et ID (si vous utilisiez un CursorAdapter, comme vous devriez l'être, plutôt que de convertir le Cursor en ArrayList), ainsi vous saurez quel élément a été cliqué .

+0

Bonjour, je cherche à faire exactement la même chose. En regardant sur le web j'ai vu que ce que vous avez suggéré est la façon de le faire, mais je ne peux pas trouver un échantillon de code décent partout. Y en at-il un dans vos livres? Si oui, numéro de page s'il vous plaît :) – Tom

+0

La plupart des exemples ListView dans les livres utilisent ListActivity et remplacent onListItemClick(), qui (IIRC) donne les mêmes paramètres. http://github.com/commonsguy/cw-android/tree/master/Selection/List/ par exemple. – CommonsWare

+0

Merci encore une fois Mark, ressemble exactement à ce dont nous avons besoin :) – Tom