Мы так близки к созданию нашего прототипа приложения в Android Studio, но у нас постоянно появляется ошибка, когда мы переключаемся на одно из наших действий.Активность с проблемой в основном показывает список пользователей в CardViews.Мы получаем ошибку com.firebase.database.databaseexception class java.util.HashMap, has generic type parameters, please use Generic type indicator instead
.Объект, который захватывает Firebase RecyclerView, сохраняет хэш-карту, но я не знаю, в этом ли проблема.RecyclerView не печатает ничего, связанного с хэш-картой, это просто сохраненный элемент в объекте.Если бы кто-то мог помочь, это было бы здорово.Ошибка начинается, когда вы нажимаете на инициализацию опций Firebase RecyclerView.Если кто-то может помочь, мне нужно это быстро исправить, спасибо \
public class TutorDisplay extends BaseNavigationActivity {
private RecyclerView tutorList;
private DatabaseReference dataRef;
private FirebaseRecyclerAdapter<Tutor, TutorDisplay.TutorViewHolder> TutorAdapator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getLayoutInflater().inflate(R.layout.activity_tutor_display, frameLayout);
setTitle("Tutors");
//Establish Firebase connection
//FirebaseDatabase myData = FirebaseDatabase.getInstance();
dataRef = FirebaseDatabase.getInstance().getReference().child("Users");
dataRef.keepSynced(true);
tutorList = (RecyclerView) findViewById(R.id.tutorList);
tutorList.setHasFixedSize(true);
tutorList.setLayoutManager(new LinearLayoutManager(this));
DatabaseReference personsRef = FirebaseDatabase.getInstance().getReference().child("Users");
Query personsQuery = personsRef.orderByChild("type").startAt("Tutor").endAt("Tutor");
FirebaseRecyclerOptions Options = new FirebaseRecyclerOptions.Builder<Tutor>().setQuery(personsQuery, Tutor.class).build();
TutorAdapator = new FirebaseRecyclerAdapter<Tutor, TutorViewHolder>(Options) {
@Override
//sets the inputs in specified spots or AKA binds them to the card
protected void onBindViewHolder(@NonNull TutorDisplay.TutorViewHolder holder, int position, @NonNull final Tutor model) {
holder.setTutor(model.getName());
holder.setRating(model.getRating());
holder.btProfile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Convert the tutor into a parcel to send to the profile activity
Intent intent = new Intent(TutorDisplay.this, ProfileCard.class);
startActivity(intent);
finish();
}
});
holder.btMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(TutorDisplay.this, ChatActivity.class));
}
});
}
@NonNull
@Override
//creates a new view or Card holder
public TutorDisplay.TutorViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//creates a new view which is inherited from the parent view
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.tutor_card, parent, false);
return new TutorDisplay.TutorViewHolder(view);
}
};
//Start the Database and view
//firebaseRecyclerAdapter.startListening();
//create the Recycler view
tutorList.setAdapter(TutorAdapator);
}
public static class TutorViewHolder extends RecyclerView.ViewHolder {
//create new view
View mView;
//UI elements
Button btProfile;
Button btMessage;
Button btRate;
//constructor
public TutorViewHolder(View itemView) {
super(itemView);
mView = itemView;
//initialize UI
btProfile = (Button) mView.findViewById(R.id.profileButton);
btMessage = (Button) mView.findViewById(R.id.messageButton);
btRate = (Button) mView.findViewById(R.id.rateButton);
}
//sets the name of the Tutor
public void setTutor(String name) {
TextView tutorName = (TextView)
mView.findViewById(R.id.tutorName);
tutorName.setText(name);
}
//sets the rating of the Tutor
public void setRating(float rating) {
RatingBar starRating = (RatingBar) `enter code
here`mView.findViewById(R.id.tutorRatingBar);
starRating.setRating(rating);
}
}
@Override
protected void onStart() {
super.onStart();
TutorAdapator.startListening();
//Starts to get info from firebase
}
}