2017-07-29 1 views
1

comment mettre à jour mon adaptateur de liste Firebase lorsqu'un utilisateur filtre des données en choisissant un menu déroulant. Le menu contient la valeur chaîne, mon code est le suivant:mettre à jour l'adaptateur de liste firebase lorsqu'un utilisateur filtre les données en choisissant un menu déroulant

FirebaseListAdapter<blood> adapter=new FirebaseListAdapter<blood>(this, blood.class, R.layout.blod,mref) { 

     @Override 
     protected void populateView(View v, blood model, int position) 
     { 
      final String pskey=getRef(position).getKey(); 
      TextView name_,groiup; 
      ImageView Pic; 
      groiup=(TextView)v.findViewById(R.id.bldgrp); 
      name_=(TextView)v.findViewById(R.id.name1); 
      Pic=(ImageView)v.findViewById(R.id.pic); 
      name_.setText(model.getName()); 
      groiup.setText(model.getBlodgrp()); 
} 
+0

Vous ne pouvez pas modifier la requête d'un FirebaseListAdapter après sa création. Vous devrez créer un nouvel adaptateur et lier cela à la vue. Voir https://stackoverflow.com/questions/40919636/how-to-update-a-firebaserecycleradapters-query/40923600#40923600 –

+0

@FrankvanPuffelen comment lier au nouvel adaptateur car j'utilise l'adaptateur de liste de firebase. L'équipe de Firebase devrait incorporer le filtre hors ligne ou le mécanisme de recherche à firebase list adapter.or sinon il n'y a aucun moyen de l'utiliser .. – Pritz10

Répondre

0

une fois qu'un FirebaseListAdapter est créé, il ne peut pas être changé parce que toutes les requêtes Firebase sont immutable. Comme les adaptateurs existants dans FirebaseUI représentent en fait la structure de données elle-même, les créateurs de Firebase n'ont pas ajouté d'option permettant de modifier la requête pour un adaptateur donné.

Notez que lorsqu'une nouvelle requête est créée, un nouvel adaptateur est également créé. Donc, en conclusion, pour résoudre le problème dans votre cas, vous avez juste besoin de créer un nouvel adaptateur.

Espérons que ça aide.