Potoman Posté(e) 20 août 2010 Share Posté(e) 20 août 2010 (modifié) Bonjour, mon sujet n'avais pas était je pense très bien compris... Je souhaite réaliser un système de favoris. J'affiche une ListView qui contient pour chaque item, deux text et une checkbox. Cela fait maintenant plus d'une journée que j'essaie de faire marqué mon code, et ce, sans succès. J'ai quelque question : -1) J'ai vue dans certain exemple, l'utilisation d'une ListActivity, au lieu de notre banal Activity... Quelqu'un pourrais me dire la différence ? -2) J'ai réussis à faire apparaitre ma listview, avec tout les composant à l'intérieur. le problème se pose lorsque je sélectionne un item. Je souhaiterais que la checkbox ssoit sélectionnez. Comment je peut faire cette chose ? -3) Le plus étrange, c'est si je clil sur la checkbox, et est bien sélectionné... Mais à la fin, je n'arrive pas récupérer sa valeur pour envoyer les données afin d'entuie, supprimer ces favoris... Voici mon plan : public class FavorisRecherche extends Activity implements OnItemClickListener { } Enfin mon adapter : public class FavoriAdapter extends BaseAdapter implements OnCheckedChangeListener { } Puis ma classe Favoris : public class Favori { } Est-ce la bonne technique pour réaliser ce que je souhaite faire ? C'est a dire, et ce que ma class Activity pour FavorisRecherche ainsi que les implements sont judicieusement bien placés ? Cordialement. Modifié 20 août 2010 par Potoman Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Potoman Posté(e) 20 août 2010 Auteur Share Posté(e) 20 août 2010 Aussi une dernière question : Pour faire un adaptateur pour ListView, il y a deux possibilité pour le extends : ArrayAdapter ou bien BaseAdapter... C'est quoi la différence ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
akex Posté(e) 20 août 2010 Share Posté(e) 20 août 2010 Je vais essayer de répondre en partie : 1) Pas de grande différence à part que ta listview doit avoir comme id "@android.R.id.list" et d'utiliser la fonction getListView() qui te permet d'éviter de déclarer ta listview via findViewById (mais c'est android qui s'en occupe). 2) Dans ta définition de ton onItemClickListener, tu peux, à partir de la view donnée en deuxième paramètre du listener, récupérer ton élément checkbox et le passé à checked : checkbox = (checkBox) view.findViewById(R.id.blabla); chechbox.setChecked(true); Attention au CHOICE_MODE 3) Pour récupérer ta valeur regarde par ici : http://developer.android.com/reference/android/widget/ListView.html#getCheckedItemPosition() Y a plus de sous classes que ça ;). La différence : arrayadapter est utilisé quand ta source de données est un array. BaseAdapter est la super classe de arrayAdapter et est moins étoffée et nécessite plus de coding. Tu as également cursorAdapter etc. http://developer.android.com/reference/android/widget/BaseAdapter.html Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Potoman Posté(e) 24 août 2010 Auteur Share Posté(e) 24 août 2010 Merci akex. J'arrive parfaitement à obtenir les item sélectionné de ma listView. Pour ca il n'y a pas de problème. Le problème, c'est que dans chaque item de ma listeview, j'ai 2 textview, et une checkbox. Donc il y a un écouteur sur la ListView. Puis dans l'adaptateur, il y a un écouteur sur la checkBox (Car sinon, lorsque je cliqué sur la checkbox, rien ne se passé. Ma checkbox était sélectionnée mais je n'arrrivais pas à enregistrer le fait que l'item de la ListView été sélectionné.) J'ai donc rajouté un écouteur dans mon item sur ma checkbox : @Override public void onCheckedChanged(CompoundButton arg0, boolean arg1) { //statesOfCheckBox.put((Integer)((View)arg0).getTag(), !arg1); notifyDataSetChanged(); } Et là, j'aimerai savoir s'il été possible de récupérer sa position. J'ai testé (Integer)((View)arg0).getTag() mais ça ne marche pas :( Y a t'il un moyen de trouver sa position par rapport aux autres checkbox dans la listview ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.