android - 想要将父节点从firebase打印到recyclerview中
问题描述
FirebaseRecyclerOptions<RestaurantDetails> options =
new FirebaseRecyclerOptions.Builder<RestaurantDetails>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("Restaurant").child("Category"), RestaurantDetails.class)
.build();
@Override
protected void onBindViewHolder(@NonNull CategoryAdapter.CategoryViewHolder holder, int position, @NonNull RestaurantDetails model) {
String post_key = getRef(position).getKey();
holder.restaurant_CategoryList.setText(post_key);
}
@NonNull
@Override
public CategoryAdapter.CategoryViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.restaurant_filter,parent, false);
return new CategoryViewHolder(view);
}
class CategoryViewHolder extends RecyclerView.ViewHolder{
TextView restaurant_CategoryList;
public CategoryViewHolder(@NonNull View itemView) {
super(itemView);
restaurant_CategoryList = itemView.findViewById(R.id.restaurant_Filter);
}
}
}
我想在我的 recyclerview 上打印 post_key,但它只显示一个空页面。只有白屏。没有错误,但我相信我遗漏了一些东西。我只想显示类别。如果我使用另一个节点“信息”,它将打印类别的副本。例如,Cafe,cafe,我只需要单词作为预览
我已经更新了帖子。这是我的餐厅详情。
public class RestaurantDetails {
private String name;
private String location;
private String address;
private String category;
private String image;
private Double latitude;
private Double longitude;
private Boolean filter;
public RestaurantDetails(String name, String location, String address, String category, String image, Double latitude, Double longitude, Boolean filter) {
this.name = name;
this.location = location;
this.address = address;
this.category = category;
this.image = image;
this.latitude = latitude;
this.longitude = longitude;
this.filter = filter;
}
}
解决方案
在您的 onBindViewHolder() 中,您需要运行一个循环来获取所有键并打印它们。
DatabaseReference databaseReference1 = FirebaseDatabase.getInstance().getReference("Restaurant");
Query query1 = databaseReference1.child("Category");
query1.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
String post_key = dataSnapshot1.getKey();
System.out.println(post_key);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
推荐阅读
- python - 根据形状和颜色比较两个图像
- jenkins - 如何使用 API 列出 Nexus 存储库中的所有组件?
- python - 是否可以在 Fedora - Gnome (gdm) 顶部栏上更改 tkinter 应用程序的标题?
- asp.net-mvc - Asp.net core MVC (Razor Pages) - 在帖子上绑定嵌套的对象列表
- php - 如何在 Laravel 中传递联系表用户电子邮件而不是 SMTP 电子邮件
- swift - AVAudioEngine mainMixerNode pan 不工作
- go - 在 Go 二进制文件中查找最大的导入包
- python - Mask R CNN,准备数据集
- angular - 离子 window.open() 授予权限 demied 并且 window.addeventlistner 没有触发
- python - 如何解析 URL 字符串列表?