Изображение показывает мою базу данных strcutre. Я пытаюсь получить доступ к значению комментариев ресторана. Попытка загрузить обзоры из базы данных Firebase по пути (RestaurantName / Reviews / Comments), но я не могу загрузить его. В настоящее время только потянув комментарии, чтобы попытаться заставить его работать. Я проверил несколько источников, но это не похоже на работу. Любая помощь будет оценена. Ниже приведен мой код (Изменить мой setReview говорит, что он никогда не используется. Нужно ли их где-либо мне вставлять?)
CLASS
package com.example.rrapplication;
public class Restuarant {
private static String RestaurantName;
private static String Review;
private static Float Score;
public Restuarant(){}
public Restuarant(String name, String review, Float score)
{
RestaurantName = name;
Review = review;
Score = score;
}
public static void SetRestaurantName(String name)
{
RestaurantName = name;
}
public static String GetRestaurantName()
{
return RestaurantName;
}
public static void SetReview(String review)
{
Review = review;
}
public static String GetReview()
{
return Review;
}
public static void SetScore(Float score)
{
Score = score;
}
public static Float GetScore()
{
return Score;
}
}
ADAPTER
public class ReviewAdapter extends RecyclerView.Adapter<ReviewAdapter.MyViewHolder>
{
private Context context;
private ArrayList<Restuarant> alRestaurants = new ArrayList<>();
public ReviewAdapter(Context c, ArrayList<Restuarant> r)
{
this.context = c;
this.alRestaurants = r;
}
@NonNull
@Override
public ReviewAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new MyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.review_card_view, parent, false));
}
@Override
public void onBindViewHolder(@NonNull ReviewAdapter.MyViewHolder holder, int position) {
Restuarant restuarant = alRestaurants.get(position);
holder.tvReview.setText(restuarant.GetReview());
}
@Override
public int getItemCount() {
return alRestaurants.size();
}
class MyViewHolder extends RecyclerView.ViewHolder
{
TextView tvReview;
public MyViewHolder(View itemView)
{
super(itemView);
tvReview = itemView.findViewById(R.id.tvReviewCardViewReviewText);
}
}
}
ACTVITY
DatabaseReference mDatabase;
RecyclerView rvReview;
ArrayList<Restuarant> alRestaurants = new ArrayList<>();
ReviewAdapter raAdapter
mDatabase = FirebaseDatabase.getInstance().getReference(Restuarant.GetRestaurantName());
rvReview = findViewById(R.id.ReviewRecyclerV);
rvReview.setHasFixedSize(true);
rvReview.setLayoutManager(new LinearLayoutManager(this));
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
alRestaurants.clear();
for(DataSnapshot dataSnapshot1 : dataSnapshot.child("Comments").getChildren())
{
Restuarant restuarant = dataSnapshot1.getValue(Restuarant.class);
alRestaurants.add(restuarant);
}
raAdapter = new ReviewAdapter(RestaurantScreen.this, alRestaurants);
rvReview.setAdapter(raAdapter);
raAdapter.notifyDataSetChanged();
}
}
}
XML
<HorizontalScrollView
android:id="@+id/RecommendationRSSV"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/SimiliarRestuarantRecyclerV"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</LinearLayout>
</HorizontalScrollView>
CARD XML
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RatingBar
android:id="@+id/rbReviewCardViewRatingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rating="0.0"
android:isIndicator="true"
style="@style/Widget.AppCompat.RatingBar.Indicator"/>
<TextView
android:id="@+id/tvReviewCardViewReviewText"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</androidx.cardview.widget.CardView>