我在使用FirebaseRecyclerAdapater
时遇到问题,起初它工作正常,但现在这个adapter
正在触发两次。数据库引用仅引用一个子节点,但它始终触发两次。带有文字的Toast" counter"将出现两次
FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder> requestAdapter =
new FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder>(
RequestVisit.class,
R.layout.seekerrequests_layout,
RequestViewHolder.class,
requestDatabase.child("2DBwmhGplGMoAlLy6337HZEShi93")
) {
@Override
protected void populateViewHolder(final RequestViewHolder viewHolder, RequestVisit model, int position) {
Toast.makeText(getContext(), "counter" +
viewHolder.getAdapterPosition(), Toast.LENGTH_SHORT).show();
}
};
requestVisitList.setAdapter(requestAdapter);
答案 0 :(得分:0)
Firebase *适配器显示项目列表,即您将其附加到的位置下的子节点。
如果使用两个不同的职位调用populateViewHolder
,则表示requestDatabase.child("2DBwmhGplGMoAlLy6337HZEShi93")
下有两个孩子。
请注意,如果2DBwmhGplGMoAlLy6337HZEShi93
是具有两个属性的子节点,那么您的方法将为每个属性调用populateViewHolder
。
如果您只想在RecyclerView
中显示单个项目,可以使用以下命令创建简单查询:
FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder> requestAdapter =
new FirebaseRecyclerAdapter<RequestVisit, RequestViewHolder>(
RequestVisit.class,
R.layout.seekerrequests_layout,
RequestViewHolder.class,
requestDatabase.orderByKey().equalTo("2DBwmhGplGMoAlLy6337HZEShi93")
)