2017-12-04 59 views
1

にfirebaseリアルタイムのデータベースからのみ特定の子を取得します。システム日付から作成され、複数になります。私は、Firebaseデータベースから取り出して、Recyclerviewにも表示するシステムの日付の子供のリストを持っていますか?それをどうすれば達成できますか?そして、データモデルクラスは何ですか?は、私は、次のfirebaseデータベース構造を持っているRecyclerview

、ユーザーが独自にアダプターを作成する必要があります
+0

https://www.android-examples.com/show-firebase-database-data-into-recyclerview/ – HemalHerath

答えて

0

:OnDataChangeのに

  • リッスンデータは
  • を変更したときRecyclerViewを知らせるFirebase
  • からのデータの内部コピーを保持します
  • Firebaseからの呼び出しを
  • ビューホルダーが必要なときに作成する
  • は、Firebaseデータのデータをビューにバインドします。
私はすぐに思い付くことができ

最小値は次のとおりです。

public static class MenuHomeAdapter extends RecyclerView.Adapter<MenuViewHolder> { 
    ArrayList<Menu> items = new ArrayList<>(); 

    public MenuHomeAdapter(Firebase ref) { 
     ref.addValueEventListener(new ValueEventListener() { 
      public void onDataChange(DataSnapshot snapshot) { 
       items.clear(); 
       for (DataSnapshot postSnapshot : snapshot.getChildren()) { 
        Menu menu = postSnapshot.getValue(Menu.class); 
        items.add(menu); 
       } 
       notifyDataSetChanged(); 
      } 

      public void onCancelled(FirebaseError firebaseError) { 
       System.out.println("The read failed: " + firebaseError.getMessage()); 
      } 
     }); 
    } 

    public MenuViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false); 
     return new MenuViewHolder(view); 
    } 

    public void onBindViewHolder(MenuViewHolder holder, int position) { 
     Menu item = items.get(position); 
     holder.getTitleView().setText(item.getTitle()); 
    } 

    public int getItemCount() { 
     return items.size(); 
    } 
}; 
関連する問題