2017-01-29 5 views
1

キーの文字列配列が格納されていて、データを表示しているリサイクルビューがあります。リサイクラービューにその配列のキーのみを表示します。 game.classにはgetterとsetterがあります。値のイベントリスナーを追加する方法を教えてくれました。配列にはスナップショットのキーが追加されていますが、配置する場所はわかりません。 おかげであなたは、あなたが各REFにaddListenerForSingleValueEventを使用することができますし、それに応じてデータを更新するキーを持っている場合は、データを取得するための リサイクラービューのfirebaseから特定のキーを取得する

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_favoritas, container, false); 
    recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler); 
    recyclerView.setHasFixedSize(true); 
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 
    prefs= this.getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE); 
    mdatabase= FirebaseDatabase.getInstance().getReference().child("Partidas"); 
    return rootView; 
} 

@Override 
public void onStart() { 
    super.onStart(); 
    FirebaseRecyclerAdapter<Game,GameViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Game, GameViewHolder>(
      Game.class, 
      R.layout.row, 
      GameViewHolder.class, 
      mdatabase 

    ) { 
     @Override 
     protected void populateViewHolder(GameViewHolder viewHolder, Game model, final int position) { 
      viewHolder.setTitle(model.getGame_name()); 
      viewHolder.setJugado(model.getJugado()); 
      viewHolder.setCreator(model.getCreator_name()) 
      }); 
     } 
    }; 
    recyclerView.setAdapter(firebaseRecyclerAdapter); 


} 


public static class GameViewHolder extends RecyclerView.ViewHolder { 

    View mview; 
    public GameViewHolder(View itemView) { 
     super(itemView); 
     mview=itemView; 
    } 
    public void setTitle(String title){ 
     TextView title_txt=(TextView)mview.findViewById(R.id.gametitle); 
     title_txt.setText(title); 
    } 
    public void setCreator(String name){ 
     TextView name_txt=(TextView)mview.findViewById(R.id.gamecreator); 
     name_txt.setText(name); 
    } 
    public void setJugado(int jugado){ 
     TextView jugado_txt=(TextView)mview.findViewById(R.id.gametimes); 
     jugado_txt.setText(String.valueOf(jugado)); 
    } 


} 

}

答えて

1

DatabaseReference ref = <YourRef>.child(<YourKeys>.get(position)); 
      ref.addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 

       } 

       @Override 
       public void onCancelled(DatabaseError firebaseError) { 
        Log.e(TAG, "Unable to fetch data " + firebaseError.getMessage()); 
       } 
      }); 

あなたはgetRef(位置) を使用してREFを取得し、ref.getKeyを()を使用して、特定のビューにキーを取得することができます。

@Override 
     protected void populateViewHolder(GameViewHolder viewHolder, Game model, final int position) { 

final DatabaseReference gameRef= getRef(position); 
final String postKey = gameRef.getKey(); 

      viewHolder.setTitle(model.getGame_name()); 
      viewHolder.setJugado(model.getJugado()); 
      viewHolder.setCreator(model.getCreator_name()) 
      }); 
     } 
    }; 
+0

私は既に鍵を持っています、私の質問はそれらの鍵だけを表示する方法です –

+0

Ohh !! FirebaseRecyclerAdapterからキーを取得することについて話していると思いました。お待ちください。鍵を使用してデータを取得することをお待ちしております。 – AndroidBeginner

+0

ニース、ありがとうございました –

関連する問題