comment faire pour récupérer des données à un recycleur de vue de FIREBASE
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.menu_recycler);
recyclerView.setHasFixedSize(true);
LinearLayoutManager linearLayout = new LinearLayoutManager(this);
linearLayout.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayout);
MenuHomeAdapter menuHomeAdapter = new MenuHomeAdapter(this, createList(7));
recyclerView.setAdapter(menuHomeAdapter);
//FireBase
Firebase.setAndroidContext(this);
//Get a reference to our posts
Firebase ref = new Firebase("LINK");
//Attach an listener to read the data at our posts reference
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Menu post = postSnapshot.getValue(Menu.class);
Toast.makeText(MenuHome.this, post.getSNo() + "-" + post.getDishName(), Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
}
comment afficher les données dans le recycleur de vue.J'ai essayé quelques méthodes mais il n'était pas bon.le Toast fonctionne, mais toutes les autres options sont mauvais.Je veux juste afficher les données de firebase dans un recycleur de vue.
- vous avez à faire votre propre adaptateur qui s'étend RecyclerViewAdapter, vous devez faire un fichier de configuration qui définit la façon dont chaque ligne de votre recyclerview est et vous devez ensuite transmettre les données à recyclerview par le biais de l'adaptateur. Il y a beaucoup d'exemples comme le remplissage de recyclerview avec les données de MYSQL, JSON ou ce eternelle API
Vous devez vous connecter pour publier un commentaire.
Comme helldawg commenté, vous aurez besoin pour créer votre propre carte:
onDataChange
des appels de FirebaseRecyclerView
lorsque les données changentLe minimum que je pouvais venir rapidement est:
De voir les choses dans leur contexte, regardez
Activity34962254
(nommé d'après le numéro de votre question) sur ce dépôt Github.Vous remarquerez que la mise en œuvre de ce est assez non-trivial. Et bien que cette application fonctionne, il est assez sous-optimale. Par exemple: lorsqu'un seul élément est modifié/ajouté/supprimé, l'ensemble de la liste est reconstruit. C'est une recette pour la mauvaise performance.
Sauf si vous avez des besoins spécifiques, vous êtes probablement mieux à l'aide de l'option
FirebaseRecyclerAdapter
dans le FirebaseUI projet. Pour obtenir une procédure pas à pas de ce que propose, je recommande ce codelab pour la construction d'une application de chat avec FirebaseUIIl y a un très bon tutoriel ici
https://github.com/firebase/FirebaseUI-Android#using-firebaseui-to-populate-a-recyclerview
Qui vous donnera ce dont vous avez besoin, et aussi FirebaseUI vous donne beaucoup à jouer avec.
Maintenant, si vous voulez inclure la liaison de données ainsi:
Personnalisé ViewHolder
FirebaseRecyclerAdapter
Pourquoi ne pas tout simplement à l'aide de la FirebaseRecyclerAdapter ?