Исключение базы данных Firebase RecyclerView: используйте ошибку индикатора общего типа - PullRequest
0 голосов
/ 07 июня 2018

Мы так близки к созданию нашего прототипа приложения в 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


    }
}
...