Firebase RecyclerView不显示任何内容

时间:2018-07-24 22:07:57

标签: android firebase firebase-realtime-database android-recyclerview firebaseui

我为另一个数据库使用了相同的代码,并且可以正常工作,我不知道为什么它在这里不起作用, onCreateViewHolder甚至都不会被调用。

(显然Stacks Overflow希望我添加更多细节来补偿过多的代码,所以这里有一些没用的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);
    }


}

课程课程

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

}

这是数据库结构:

enter image description here

1 个答案:

答案 0 :(得分:0)

对不起,我应该发表评论,但我没有足够的声誉。

在您的代码中我看不到任何类似的东西。

 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());