0

I have developing an appointment system and I want to list the uploaded appointments in Recyvlerview so I have created a model class the use for storing the data as well as use it if the purpose. In addition, the data is existing and I already ensure from the AddVlueListiner so the following are the classes and layout

List Appointment Class

    public class List_appointment extends AppCompatActivity {
        private FirebaseAuth mAuth;
        private DatabaseReference mReference;
        private Button ChatButton;
        private TextView StartBusinseTime, EndBusinessTime, StartAppointment, EdnAppointment;
        private RecyclerView OwnerListAppointment;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_appointment);
        //Todo:Firebase Instance
        mAuth = FirebaseAuth.getInstance();
        String Uid = mAuth.getCurrentUser().getUid();
        mReference = FirebaseDatabase.getInstance().getReference().child("Appointments").child(Uid);//make sure from this path
//        mReference.addValueEventListener(new ValueEventListener() {
//            @Override
//            public void onDataChange(DataSnapshot dataSnapshot) {
//                if (dataSnapshot.exists()){
//                    for (DataSnapshot snapshot : dataSnapshot.getChildren()){
//                        System.out.println("List owner appoinemt"+snapshot);
//                    }
//                }
//
//            }
//
//            @Override
//            public void onCancelled(DatabaseError databaseError) {
//
//            }
//        });

        OwnerListAppointment = (RecyclerView) findViewById(R.id.OwnerListAppointment);
        LinearLayoutManager OwnerLayoutManager = new LinearLayoutManager(this);
        OwnerLayoutManager.setReverseLayout(true);
        OwnerLayoutManager.setStackFromEnd(true);
        OwnerListAppointment.setLayoutManager(OwnerLayoutManager);


    }

    public static class OwnerListAppointmentClass extends RecyclerView.ViewHolder {//class into class is called liner class
        View mView;

        public OwnerListAppointmentClass(View itemView) {
            super(itemView);
            mView = itemView;

        }

        public void setStartFirstAppoint(String startFirstAppoint) {
            TextView StartAppointment = (TextView) mView.findViewById(R.id.StartAppointmet_Owner);
            StartAppointment.setText(startFirstAppoint);
        }

        public void setEndSecondAppointment(String endSecondAppointment) {
            TextView EndAppointment = (TextView) mView.findViewById(R.id.EndAppointment);
            EndAppointment.setText(endSecondAppointment);

        }

        public void setAppointmentStuts(String appointmentStuts) {
            TextView appointment = (TextView) mView.findViewById(R.id.EndAppointment_Owner);
            appointment.setText(appointmentStuts);
        }

    }


        private void DisplayListOfAppointments() {
        FirebaseRecyclerAdapter<AddUserAppointment, List_appointment.OwnerListAppointmentClass> AppointmentRecyclerAdapter =
                new FirebaseRecyclerAdapter<AddUserAppointment, OwnerListAppointmentClass>
                        (
                                AddUserAppointment.class,
                                R.layout.listappointmentclass,
                                OwnerListAppointmentClass.class,
                                mReference


                        )
                {
                    @Override
                    protected void populateViewHolder(OwnerListAppointmentClass viewHolder, AddUserAppointment model, int position) {
                        final String SAppoinemtnKey = getRef(position).getKey();
                        viewHolder.setStartFirstAppoint(model.getStartFirstAppoint());
                        viewHolder.setEndSecondAppointment(model.getEndSecondAppointment());
                        viewHolder.setAppointmentStuts(model.getAppointmentStuts());

                    }
                };
        OwnerListAppointment.setAdapter(AppointmentRecyclerAdapter);


}

Modle Class

public class AddUserAppointment {

   private String StartBusinse;
   private String StartBusinseTime ;
    private String EndBusinseTime ;
   private String startFirstAppoint ;
   private String endSecondAppointment ;
   private String AppointmentStuts;
   private String Uid;
  private static ArrayList<AddUserAppointment>AppointmentList = new ArrayList<>();

    public static ArrayList<AddUserAppointment> getAppointmentList() {
        return AppointmentList;
    }



    public AddUserAppointment() {
        ////empty
    }

    public AddUserAppointment(String startBusinse, String startBusinseTime, String endBusinseTime, String startFirstAppoint, String endSecondAppointment, String appointmentStuts, String uid) {
        StartBusinse = startBusinse;
        StartBusinseTime = startBusinseTime;
        EndBusinseTime = endBusinseTime;
        this.startFirstAppoint = startFirstAppoint;
        this.endSecondAppointment = endSecondAppointment;
        AppointmentStuts = appointmentStuts;
        Uid = uid;
    }

    public String getUid() {
        return Uid;
    }

    public void setUid(String uid) {
        Uid = uid;
    }

    public String getStartBusinse() {
        return StartBusinse;
    }

    public void setStartBusinse(String startBusinse) {
        StartBusinse = startBusinse;
    }

    public String getStartBusinseTime() {
        return StartBusinseTime;
    }

    public void setStartBusinseTime(String startBusinseTime) {
        StartBusinseTime = startBusinseTime;
    }

    public String getEndBusinseTime() {
        return EndBusinseTime;
    }

    public void setEndBusinseTime(String endBusinseTime) {
        EndBusinseTime = endBusinseTime;
    }

    public String getStartFirstAppoint() {
        return startFirstAppoint;
    }

    public void setStartFirstAppoint(String startFirstAppoint) {
        this.startFirstAppoint = startFirstAppoint;
    }

    public String getEndSecondAppointment() {
        return endSecondAppointment;
    }

    public void setEndSecondAppointment(String endSecondAppointment) {
        this.endSecondAppointment = endSecondAppointment;
    }

    public String getAppointmentStuts() {
        return AppointmentStuts;
    }

    public void setAppointmentStuts(String appointmentStuts) {
        AppointmentStuts = appointmentStuts;
    }
}
Armali
  • 18,255
  • 14
  • 57
  • 171
Alex
  • 77
  • 1
  • 9
  • Isn't this the same as your last question at https://stackoverflow.com/questions/52156206/how-to-update-nested-data-in-fire-base-database-android ? – Robert Sep 05 '18 at 02:43
  • **[This](https://stackoverflow.com/questions/49383687/how-can-i-retrieve-data-from-firebase-to-my-adapter/49384849)** is a recommended way in which you can retrieve data from a Firebase Realtime database and display it in a `RecyclerView` using `FirebaseRecyclerAdapter`. – Alex Mamo Sep 05 '18 at 06:32

1 Answers1

0

First, the implementation of RecyclerView is not standard; guessing its the Firebase UI RecyclerView, try to implement it by creating your own class and then extenting the Firebase RecyclerView.

Secondly, you never called the method DisplayListOfAppointments(), so there is no ViewHolder object created, and also, it didn't got attached to RecyclerView, i.e. the last line of the same method:

OwnerListAppointment.setAdapter(AppointmentRecyclerAdapter)
Rajarshi
  • 2,419
  • 3
  • 23
  • 36