Хотите напечатать родительский узел в виде переработчика из firebase - PullRequest
0 голосов
/ 12 апреля 2020
      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);
        }
    }
}

enter image description here

Я хочу напечатать post_key в моем обзоре переработчика, но он показывает только пустую страницу. Только белый экран. Там нет ошибки, но я считаю, что я что-то упустил. Я хочу отображать только категории. Если я использую другой узел, который называется «Info», он напечатает дубликат категории. Например, Кафе, кафе, в котором мне нужно было только превью слова

Я обновил пост. Вот мой детальный ресторан.

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;
}

}

enter image description here

1 Ответ

0 голосов
/ 12 апреля 2020

Внутри onBindViewHolder () вам нужно запустить al oop, чтобы получить все ключи и напечатать их.

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) {

            }
        });
...