我正在尝试将maxDrawdown
的字符串(userID
)传递给我的onBindViewHolder
类。这背后的原因是我需要职位来分配正确的postID。此postID在ViewHolder中用作设置Firebase ViewHolder
的参考。但是,在运行应用程序时,我在postID上获得valueEventListener
。这是由于同步吗?在postID之前调用NullPointerException
是否已设置?
valueEventListener
答案 0 :(得分:0)
是的,你在PostViewHolder
的构造函数中调用它,onCreateViewHolder
之前由onBindViewHolder
方法调用。
答案 1 :(得分:0)
在ViewHolder
类中创建一个方法,并从onBindViewHolder
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
final PostViewHolder holder1 = (PostViewHolder) holder;
holder1.doYourTask(getPostId(position));
//...
}
public class PostViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
//...
public void doYourTask(String postID){
DatabaseReference mNoOfLikesRef = FirebaseDatabase.getInstance().getReference().child("likes").child(postID);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//...
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
mNoOfLikesRef.addListenerForSingleValueEvent(valueEventListener);
}
}