-1

I have the same code for another database and it works just fine, I have no Idea why it's not working here, the onCreateViewHolder does not even get called.

(Appearently Stacks Overflow wants me to add more details to compensate for too much code so here's some unuseful Text , Text, Text , TEXT).

public class Course extends AppCompatActivity {

private RecyclerView mLocationView;
private DatabaseReference mLocation;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_course);


    mLocation = FirebaseDatabase.getInstance().getReference("FINISHEDCOURSES");
    mLocation.keepSynced(true);

    mLocationView = (RecyclerView) findViewById(R.id.my_recycler_view);
    mLocationView.setHasFixedSize(true);
    mLocationView.setLayoutManager(new LinearLayoutManager(this));

}

@Override
protected void onStart() {
    super.onStart();

    FirebaseRecyclerOptions<Courses> options = new FirebaseRecyclerOptions.Builder<Courses>().setQuery(mLocation, Courses.class).build();
    FirebaseRecyclerAdapter<Courses, CourseViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Courses, CourseViewHolder>
            (options) {
        @Override
        protected void onBindViewHolder(@NonNull CourseViewHolder holder, int position, @NonNull Courses model) {
            holder.setText(model.getDate(), model.getDistance(), model.getDriver(), model.getPrice());
        }

        @NonNull
        @Override
        public CourseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.courses_rows, parent, false);
            return new CourseViewHolder(view);
        }
    };



    mLocationView.setAdapter(firebaseRecyclerAdapter);
    firebaseRecyclerAdapter.startListening();



}



public static class CourseViewHolder extends RecyclerView.ViewHolder{

    View mView;
    public CourseViewHolder(View itemView){
        super(itemView);
        mView = itemView;
    }

    public void setText(String Date, String start, String end, String price){
        TextView dateText = mView.findViewById(R.id.dateText);
        TextView startText = mView.findViewById(R.id.depart_text);
        TextView endText = mView.findViewById(R.id.end_text);
        TextView priceText = mView.findViewById(R.id.price);

        dateText.setText(Date);
        startText.setText(start);
        endText.setText(end);
        priceText.setText(price);
    }


}

The Courses Class

public class Courses {

private String driver, date, distance, preWaitTime, price, waitTime, client;

public Courses() {

}

public Courses(String driver, String date, String distance, String preWaitTime, String price, String waitTime, String client) {
    this.driver = driver;
    this.date = date;
    this.distance = distance;
    this.preWaitTime = preWaitTime;
    this.price = price;
    this.waitTime = waitTime;
    this.client = client;
}

public String getDriver() {
    return driver;
}

public void setDriver(String driver) {
    this.driver = driver;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}

public String getDistance() {
    return distance;
}

public void setDistance(String distance) {
    this.distance = distance;
}

public String getPreWaitTime() {
    return preWaitTime;
}

public void setPreWaitTime(String preWaitTime) {
    this.preWaitTime = preWaitTime;
}

public String getPrice() {
    return price;
}

public void setPrice(String price) {
    this.price = price;
}

public String getWaitTime() {
    return waitTime;
}

public void setWaitTime(String waitTime) {
    this.waitTime = waitTime;
}

public String getClient() {
    return client;
}

public void setClient(String client) {
    this.client = client;
}

}

Here's The Database Structure :

enter image description here

Taha Elkhaoua
  • 81
  • 1
  • 9
  • Can u post your database structure @Taha Elkhaoua. – Raj Jul 25 '18 at 04:19
  • I edited the post with the database structure . – Taha Elkhaoua Jul 25 '18 at 14:56
  • protected void onBindViewHolder(@NonNull CourseViewHolder holder, int position, @NonNull Courses model) { Log.i("Data", model.toString()); } Try to get log and see data is coming. Also add toString() method in your model. – Raj Jul 25 '18 at 15:17

1 Answers1

0

Sorry I should have commented but i do not have enough reputation to do so.

I cannot see anything similar to this in your code.

 FirebaseRecyclerAdapter<Courses, CourseViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Courses, CourseViewHolder>(
            Courses.class,
            R.layout.Courses,// should be your layout name 
            CourseViewHolder.class,
            mLocation
    ) {
        @Override
        protected void populateViewHolder(CourseViewHolder viewHolder, category model, final int position) {

            viewHolder.setName(model.getName());
            viewHolder.setImage(getApplicationContext(),model.getImage());
Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
Jallow
  • 49
  • 8