Это структура Firebase. Я хочу фильтровать элементы в соответствии с датой. Если пользователь выбирает указанную дату c через Date picker
, я хочу фильтровать элементы и отображать ее в Recyclerview
. Я попробовал этот метод, он работает только на текущую дату. Если я выберу другую дату, Recyclerview не изменится. Что здесь пошло не так?
Мой пробный код
dbbookingDetails=FirebaseDatabase.getInstance().getReference("Booking").child(currentuserID);
recyclerView=findViewById(R.id.recyclerbill);
recyclerView.setHasFixedSize(true);
progressBar=findViewById(R.id.progreebarid);
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
mlist=new ArrayList<>();
btndate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogFragment datepicker=new DatepickerFragment();
datepicker.show(getSupportFragmentManager()," date picker");
////////////////-------------///////////////////////
Calendar c=Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH);
int day=c.get(Calendar.DAY_OF_MONTH);
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH,month);
cal.set(Calendar.DAY_OF_MONTH,day);
final SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
final String sdate = format.format(cal.getTime());
tvdate.setText(sdate);
dbbookingDetails.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
mlist.clear();
for(DataSnapshot dataSnapshot1:dataSnapshot.getChildren())
{
BookingDetails bd=dataSnapshot1.getValue(BookingDetails.class);
if(bd.getBookingDate.equals(sdate))
{
mlist.add(bd);
}
}
madapter=new Adapter_booking_details(MainActivity.this,mlist);
recyclerView.setAdapter(madapter);
madapter.notifyDataSetChanged();
progressBar.setVisibility(View.INVISIBLE);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});