8 votes

Comment mettre en œuvre un filtrage multiple dans une application Android basée sur RecyclerView ?

Actuellement, j'ai développé un Activity pour afficher une liste de données en utilisant RecyclerView avec fonction de recherche (comme on le voit sur l'image_1).

Je veux ajouter une option de filtrage à la barre d'outils similaire au filtre de l'application Youtube (voir image_2). Quelqu'un peut-il me donner des indices pour l'implémenter facilement ? Tant pour la conception de l'interface utilisateur que pour la logique d'entreprise.

Une idée sur la façon d'implémenter la fenêtre de dialogue du filtre (voir image_3) ? Devrais-je simplement utiliser AlertDialog ou y a-t-il d'autres meilleures options ?

image_1 image_2 image_3

2voto

Thiago Souto Points 628

Ainsi, vous devez créer un menu d'options qui démarre un DialogFragment avec une mise en page personnalisée et obtenir les balises filtrées par l'utilisateur dans votre dialogue, puis vous pouvez les utiliser pour filtrer votre recyclerview.

Votre adaptateur doit implémenter l'interface Filterable !

Vous pouvez le faire en suivant ces instructions :

  1. Créez un OptionsMenu qui lance votre DialogFragment. Créez un
  2. DialogInterface.OnClickListener pour votre bouton de recherche dans la boîte de dialogue.
  3. qui appellent votre adaptateur.filtre par vos balises. Créez un
  4. Filter(Android.widget.Filter) qui reçoit vos tags et ensuite vous pourriez filtrer les données et notifier !

Votre adaptateur doit implémenter Filterable.

Comment filtrer un RecyclerView avec un SearchView ?

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