2016-05-24 17 views
0

RecyclerView私はFirebaseRecyclerAdapterを入力しています。Android - Firebaseがビューに追加カウント?

FirebaseRecyclerAdapter<HashMap,MViewHolder> adapter1 = new FirebaseRecyclerAdapter<HashMap, MViewHolder>(HashMap.class,R.layout.list_item,MViewHolder.class,firebase.limitToLast(5)) { 
     @Override 
     protected void populateViewHolder(final MViewHolder mViewHolder, HashMap hashMap, int i) { 
      mViewHolder.title_txt.setText(hashMap.get("title").toString()); 
      mViewHolder.body_txt.setText(hashMap.get("body").toString()); 

      Firebase userRef = new Firebase("https://yournewz.firebaseio.com/users/" + hashMap.get("poster").toString()); 
      ValueEventListener valueEventListener = new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 
        mViewHolder.postedTxt.setText("Posted by: " + dataSnapshot.getValue().toString()); 
       } 

       @Override 
       public void onCancelled(FirebaseError firebaseError) { 

       } 
      }; 

      userRef.addValueEventListener(valueEventListener); 

      mViewHolder.context = (MainFragment)getParentFragment(); 
      //mViewHolder.postedTxt.setText(poster); 
     } 
    }; 

public static class MViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ 

    TextView title_txt; 
    TextView body_txt,postedTxt; 
    MainFragment context; 

    public MViewHolder(View view) { 
     super(view); 
     title_txt = (TextView)view.findViewById(R.id.title); 
     body_txt = (TextView)view.findViewById(R.id.body); 
     postedTxt = (TextView)view.findViewById(R.id.postedBy); 

     view.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     int item = getAdapterPosition(); 
     int pos = 5 - item; 
     Firebase firebase = new Firebase("https://yournewz.firebaseio.com/items"); 
     //firebase.get 
     context.GoToStory(postedTxt.getText().toString(),title_txt.getText().toString(),body_txt.getText().toString()); 
    } 
} 

アイテムに含まれるビューの量を格納するビュー数を実装しようとしています。

yournews 
----items 
    ----QLEJCCNGJIDOS (item key) 
     ----body: "text" 
     ----title: "text" 
     ----poster: "UID" 
     ----views: "0" 

がから項目キーを取得する方法があります:ユーザーがrecyclerview項目をクリックすると、それは次のようであるFirebaseデータベースの項目に子が追加されますように私はそれを作りたいですFirebaseRecyclerAdapterRecyclerViewでクリックするたびにアイテムのビューの子に1を追加しますか?

ご協力いただきありがとうございます。 (よくない質問には申し訳ありません)

答えて

2

getRef()FirebaseRecyclerAdapterです。

あなたはこのような何かを行うことができます。

protected void populateViewHolder(final MViewHolder mViewHolder, HashMap hashMap, int i) { 
    // ... 
    DatabaseReference ref = getRef(i); 
    String itemKey = ref.getKey(); 

} 

は、その後、現在の項目のキーを持っている、あなたは、カスタム・ロジックを取り込むためにそれを使用することができます。

+0

ありがとうございます!私はpopulateViewHolderの 'int i'がその位置であることに気付かなかった。助けてくれてありがとう。 –

関連する問題