Я создаю систему управления назначением для студентов и преподавателей. У меня есть массив списка, который извлекает данные из Firebase. Я включил две кнопки, чтобы изменить статус встречи на принятую или отклоненную. Я не смог найти код для обновления данных о базе данных в окне списка при нажатии кнопок.
Я на самом деле новичок в разработке для Android, так что прости меня, если я задаю вопросы, на которые легко ответить. Я перепробовал все, чтобы найти решение своей проблемы, но я не могу найти ни одного. Это система управления назначением, где студенты могут назначить встречу со своими лекторами. Для просмотра лектора у меня есть просмотр списка, который показывает все запросы о встрече, сделанные студентами. В каждом ряду будет 2 набора кнопок, предназначенных для принятия или отклонения встречи. Когда нажата одна из кнопок, она обновит статус встречи, например; нажмите кнопку подтверждения, чтобы подтвердить статус. Данные извлекаются из базы данных Firebase в реальном времени. Моя проблема в том, что я не смог найти подходящий код для обновления статуса встречи, когда нажата любая из двух кнопок. Мне действительно нужна помощь для этого. Заранее спасибо.
Это для моей деятельности.
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
v = inflater.inflate(R.layout.lect_fragment_appointment, container, false);
myrecyclerview= (RecyclerView) v.findViewById(R.id.appointment_list_recyclerview2);
myrecyclerview.setLayoutManager(new LinearLayoutManager(getActivity()));
list = new ArrayList<ListView_Appointmnet_LectView>();
SharedPreferences preferences = this.getActivity().getSharedPreferences("user_details", Context.MODE_PRIVATE);
databaseReference = FirebaseDatabase.getInstance().getReference().child("Appointment");
Query query1 = databaseReference.orderByChild("lect_name").equalTo(preferences.getString("Lect_Name",null));
query1.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot dataSnapshot1: dataSnapshot.getChildren())
{
ListView_Appointmnet_LectView L = dataSnapshot1.getValue(ListView_Appointmnet_LectView.class);
list.add(L);
}
adapter = new CustomAdapter_ListView_Lecturer(getContext(),list);
myrecyclerview.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
Это мой вид адаптера
public class CustomAdapter_ListView_Lecturer extends RecyclerView.Adapter<CustomAdapter_ListView_Lecturer.MyViewHolder> {
Context context;
ArrayList <ListView_Appointmnet_LectView> appointment_lectview ;
public CustomAdapter_ListView_Lecturer(Context c, ArrayList<ListView_Appointmnet_LectView> a)
{
context = c;
appointment_lectview = a;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.item_appointment_list_lecturer, viewGroup, false));
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int position) {
myViewHolder.name.setText(appointment_lectview.get(position).getStudent_ID());
myViewHolder.subject.setText(appointment_lectview.get(position).getSubject());
myViewHolder.date.setText(appointment_lectview.get(position).getStart_date());
myViewHolder.time.setText(appointment_lectview.get(position).getStart_time());
myViewHolder.onClick(position);
}
@Override
public int getItemCount() {
return appointment_lectview.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
TextView name, date, subject, time, status;
ImageButton approve_btn, reject_btn;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
name = (TextView) itemView.findViewById(R.id.appointment_studentID);
date = (TextView) itemView.findViewById(R.id.appointment_date);
subject = (TextView) itemView.findViewById(R.id.appointment_subject);
time = (TextView) itemView.findViewById(R.id.appointment_time);
status = (TextView) itemView.findViewById(R.id.appointment_status);
approve_btn = (ImageButton) itemView.findViewById(R.id.approve_btn);
reject_btn = (ImageButton) itemView.findViewById(R.id.reject_btn);
}
public void onClick(final int position) {
approve_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Approve " + position + "is clicked", Toast.LENGTH_SHORT).show();
}
});
reject_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Reject " + position + "is clicked", Toast.LENGTH_SHORT).show();
}
});
}
}
}
Класс установки и получения:
public class ListView_Appointmnet_LectView {
private String start_date;
private String subject;
private String start_time;
private String student_ID;
private String status;
public ListView_Appointmnet_LectView() {
}
public ListView_Appointmnet_LectView(String start_date, String subject, String start_time, String student_ID, String status) {
this.start_date = start_date;
this.subject = subject;
this.start_time = start_time;
this.student_ID = student_ID;
this.status = status;
}
public String getStart_date() {
return start_date;
}
public void setStart_date(String start_date) {
this.start_date = start_date;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getStart_time() {
return start_time;
}
public void setStart_time(String start_time) {
this.start_time = start_time;
}
public String getStudent_ID() {
return student_ID;
}
public void setStudent_ID(String student_ID) {
this.student_ID = student_ID;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}