J'ai plusieurs éléments dans un . Supposons qu'il y ait 7 éléments dans le donc, ce que je veux strong> est, je veux filtrer les éléments basés sur les valeurs longues ci-dessus à l'aide de cette logique: P> recyclerview code> et chaque élément comporte une valeur code> enregistrée avec elle. J'utilise FASTADAPTER comme adaptateur pour mon recyclerview code>. recyclerview code> avec les valeurs longues: 11122 code>, 12321 code>, -98811 code>, 8870 code>, -88009 code>, 3398 code> et -22113 code>. p> if (l <= 1000) {
// show items with long value <=1000
} else if (l > 1000) {
// show items with long value >1000
}
5 Réponses :
Avec la quantité d'informations fournies, je ne peux supposer que Je vous recommande de mettre en œuvre une liste de visionneuse code>, d'envoi dans la liste des éléments et de la variable de sélecteur l code> est une valeur de sélecteur étranger qui contrôle les éléments à afficher à l'intérieur du recyclerview code>. Commentaire ci-dessous Si ce n'est pas le cas, je vais essayer de corriger ma réponse. l Code> Utiliser des méthodes respectives: P> public class ItemsAdapter extends
RecyclerView.Adapter<ItemsAdapter.ItemViewHolder> {
private List<Long> mItemList;
private List<Long> mDisplayItems;
private boolean mAboveThousand = true;
public void setItemList(List<Long> list) {
mItemList = list;
updateDisplayItems();
}
public void setSelectionType(boolean aboveThousand) {
mAboveThousand = aboveThousand;
updateDisplayItems();
}
private updateDisplayItems() {
mDisplayItems.clear();
for(Long item: mItemList) {
if(/*check your contition*/) {
mDisplayItems.add(item);
}
}
notifyDataSetChanged(); //important
}
...
// Rest of implementation
}
l code> est le suivant: 11122 code>, 12321 code>, -98811 code>, 8870 code>, < Code> -88009 code>, 3398 code> et -22113 code>. Enregistré avec les éléments de recyclerview code> respectivement.
@HAMMADNASIR Je ne peux pas comprendre comment voulez-vous filtrer les "articles", aussi qu'entendez-vous exactement par des éléments? Pouvez-vous s'il vous plaît clarifier avec un exemple?
Merci d'avoir répondu, veuillez vérifier la question modifiée (la pièce écrite dans Mise à jour 1 B>).
La réponse d'Abhi travaille ici aussi bien. Bien que le «reste de la mise en œuvre» implique les différents détenteurs de vues dynamiques basées sur le type. Ensuite, peu importe ce qui est dans la liste MDISPAplayItems parce que même si vous l'avez nourri de chaque élément, cela les mettrait simplement dans leur type de données respectif en conséquence.
Peut-être que cette réponse peut résoudre mon problème, mais le problème est que j'ai du mal à utiliser cette réponse car je ne peux pas comprendre comment et où utiliser cela! Aidez-moi s'il vous plaît à obtenir tout cela clair. : |
@Abhi Voici ce que j'ai essayé de faire à l'aide de FastAdapter: Gist.github.com/hammadnasir/0152E9513BE1059DDB24B12072B74BC Mais cela n'a pas fonctionné!
@Abhi s'il vous plaît ne laissez pas encore ça .. que dois-je faire? Devrais-je juste commencer tout en plus et arrêter l'utilisation de fixatedapter code> ici?
@HAMMADNASIR désolé pour le retard, ma machine est en réalité et est sortie pour la réparation, je ne peux pas vraiment vous aider avec FastAdapter sans l'essayer. Donc, je vous suggérerais de laisser tomber FastAdapter pour l'instant et de passer à la normale.
Même votre code très basique, il y aurait fonctionner. Vous pouvez compter le nombre d'éléments dans cette plage et renvoyer le nombre dans cette plage. Je vous suggère d'essayer de le faire sans fixation rapide car le concept de base de l'analyse des données basé sur une valeur de filtre est parfaitement parfaitement solide. Vous pouvez itérer la boucle et les compter et vous pouvez itérer la boucle et renvoyer le nième objet. p>
Un peu de code selon votre réponse serait vraiment très utile.
Vous pouvez configurer quelque chose pour filtrer les entrées dans l'adaptateur, même ce que vous avez là-bas devrait fonctionner. Ma meilleure suggestion à vous est issue des éléments les plus élémentaires qui devraient évidemment travailler à un élément plus complexe. Et perdre la fixation rapide pour que vous puissiez travailler les autres bits.
Je suis incapable de comprendre où utiliser la réponse d'Abhi et aussi ce que vous dites comme je ne suis pas encore beaucoup de bon développeur Android. S'il vous plaît, aide du très fondamental comme quoi et comment dois-je faire?
Vous écrivez un recycleradapter standardish et filtrez simplement les données qui le recule en fonction de la norme.
Si vous voulez continuer à utiliser FASTADAPTER, il dispose d'une fonctionnalité de filtres intégrée (voir le numéro de point 5 dans le README du projet . Notez que la méthode Vous devez résoudre les logiques dont vous souhaitez afficher (à l'aide des cases à cocher dans la boîte de dialogue que vous avez mentionnée. Dans le commentaire) et transmettez cette information sur le filtre, par exemple: p> et où vous définissez l'adaptateur (avant que la ligne ci-dessus n'est appelée) avoir: p> p> à partir de quand je pensais que vous vouliez filtrer les éléments en fonction de leur dans votre code, en supposant que votre application accède à la e et quelque part avant fort> que, de préférence où vous définissez l'adaptateur (le plus probable dans le (supposant ici que Filtre CODE> doit être appelée avecfilterRedicate CODE> et non auparavant, comme indiqué là-bas). P> Edit - Après avoir souligné que je vous ai mal compris, voici mes instructions proposées actualisées: p>
ancienne réponse h3>
ms code > Valeurs longues, à l'aide d'un indicateur externe l code> long: p> si code> vous avez mentionné dans la question quand il devrait - supprimer le fasttitemadapter.clear (); code> et au lieu de la boucle code> pour code> avec le Si code> à l'intérieur, écrivez p> onecreate code> de MainAlactivité code>) ajoutez ce qui suit: p> grmodeclass code> est vos articles ' classe et que le LONG MS code> est le long que vous avez fait référence à cela devrait déterminer si le) p> p>
l code> est une liste fastemadapter.filter (long.tostring (L)); code>: /
Donc, je ne vous ai probablement pas compris correctement. Je pensais l code> est une autre valeur unique, prise de quelque part ailleurs et devrait déterminer si nous devons afficher toutes les cartes qui ont ms code> inférieure à 1000 ou ceux qui ont Un MS code> de valeur supérieure ou égale à 1000. Est-ce que je me trompe? Si oui, veuillez répondre ici et mettre à jour votre question.
J'ai clairement mentionné dans la question que l code> est ces valeurs 11122, 12321, -98811, 8870, -88009, 3398 et -22113 code>. Voir les deux fichiers ici:
Quelle est la variable booléenne qui détermine si vous souhaitez afficher les cartes avec l <1000 code> ou celles avec l> = 1000 code>?
Il n'y a pas de valeur booléenne. Comme vous pouvez le constater dans le lien, j'ai fourni une boîte de dialogue montrée 2 Cochez la case code>, puis l'utilisateur a choisi quelles cartes à voir.
Je ne veux pas jouer avec tout votre code. J'essaie de répondre à la question spécifique que vous avez posée. Je ne veux pas entrer dans la logique intérieure du moment où vous souhaitez afficher chaque ensemble de cartes. Résoudre la condition vous-même, puis utiliser la réponse que je viens de mettre à jour à la manière dont je comprends votre question maintenant (chaque élément dispose d'une valeur l code> qui devrait déterminer s'il est affiché ou non basé sur une condition - quelque chose sur le dialogue et les cases à cocher - Je vous laisserai ces détails).
Je suppose que votre classe est comme maintenant, j'espère que vous avez une fonction appelée lorsque vous mettez un filtre dans votre recyclerview code>. Laissez le nom de la fonction est togglefilter code>. p>
N'y a-t-il pas besoin d'écrire cette ligne quelque part: fastemadapter.filter (conditions); code>?
Nan. Je suppose. As-tu essayé?
Vous pouvez filtrer lors de la récupération de Firebase.
l <= 1000 p> l> 1000 p>
Avec la quantité de détails donnée, cela appelle à une reformulation des beaux manuels. Il pourrait s'avérer plus constructif de montrer i> ce que vous avez essayé et i> décrivez ce que vous avez observé et dans la mesure où cela est tombé suffisant.
D'accord, il suffit de regarder à travers votre édition. Maintenant, si je suis correct, il y a plusieurs cartes à l'intérieur
RECYCLERVIEW CODE>, et que vous souhaitez afficher toutes les cartes, mais seules les informations affichées à l'intérieur de la carte doivent être filtrées en fonction de la valeur longue. Ai-je raison?@Abhi non .. Je veux afficher uniquement ces cartes dans lesquelles la valeur
longue code> stockée est soit<= 1000 code> ou> 1000 code> respectivement comme choisies par l'utilisateur.Avez-vous à mettre en œuvre
filtré code>? Quelle est la meilleure solution et c'est aussi une solution dynamique.@MOINKHAN J'ai essayé mais je suis incapable de créer une logique! Ça ne marche pas ..: /