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,但是它只显示一个空白页面。只有白屏。没有错误,但我相信我缺少一些东西。我只想显示类别。如果我使用的另一个节点是“ Info”,它将打印类别的重复项。例如,Cafe,我只要求预览的单词的Cafe
我已经更新了帖子。这是我的RestaurantDetails。
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) {
}
});