如何进行活动,直到从Firebase检查数据

时间:2018-07-04 21:45:29

标签: android firebase firebase-realtime-database android-datepicker

我正在管理预订请求。用户从DatePicker中选择日期。之后,我访问Firebase以查看已保留的时隙和未保留的时隙。之后,我必须阻止保留的时间间隔(listView中的项目)。

我的问题是用户可以选择日期和有效日期,并且listView的显示已完成,但是Firebase中的搜索正在运行,因此即使已经预定了相应的时间,也不会阻止该列表的任何项目。

如何让它等到检查完成?

    final  DatePickerDialog.OnDateSetListener date1 = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            // TODO Auto-generated method stub
            myCalendar.set(Calendar.YEAR, year);
            myCalendar.set(Calendar.MONTH, monthOfYear);
            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateLabel();  //to update the date

        }

    };

     private void updateLabel() {
    String myFormat = "yyyy-MM-dd"; //In which you need put here
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
     //date = sdf.format(myCalendar.getTime());
    updateList(date=sdf.format(myCalendar.getTime()));  //make firebase search query

    pop.setText(date);  //


}

   private void updateList(String date) {

    Query query=myRef.child(id1).child("Newreservation").orderByChild("date").equalTo(date);

    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(dataSnapshot.exists()) {
                for (DataSnapshot data : dataSnapshot.getChildren()) {

                    NewReservation model = data.getValue(NewReservation.class);
                    String pos = model.getEtat();   //if the time is not avaible it return the position of the item in the list
                    int i =Integer.parseInt(pos);

                    ((TextView)temps.getChildAt(i)).setTextColor(Color.GRAY);  //make the item GRAY and non clickable

                    temps.getChildAt(i).setEnabled(false);
                    }
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

}

这是我数据库中的结构:

0 个答案:

没有答案