所以我有一个RecyclerView
,我填充了FirebaseRecyclerAdapter
。我使用以下代码检索所需的数据:
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());
}
}
我正在尝试实现一个视图计数,该计数将存储项目的“视图”数量。我希望这样做,以便当用户点击recyclerview项目时,它会将一个子项添加到Firebase数据库中的项目,如下所示:
yournews
----items
----QLEJCCNGJIDOS (item key)
----body: "text"
----title: "text"
----poster: "UID"
----views: "0"
每次点击FirebaseRecyclerAdapter
时,是否有办法从RecyclerView
获取项目的关键字以添加1项目的视图子项?
非常感谢任何帮助,谢谢。 (对不起措辞不好的问题)
答案 0 :(得分:2)
var engine = new V8ScriptEngine();
上的getRef()
是您正在寻找的。 p>
您可以这样做:
FirebaseRecyclerAdapter
然后您拥有当前项目的密钥,您可以使用它来填充自定义逻辑。