2014-09-24 3 views
0

Сегодня МАЗМ пытается разработать простое приложение, которое будет запрашивать у пользователя ввести 2 даты с помощью DatePickerDialog через кнопку, а затем выполнить запрос в базу данных:Android DatePickerDialog ждать уволить

 Button.setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View arg0) { 


      Da = new DatePickerDialog(MainActivity.this, DADateSetListener, 2014, 8, 24); 
      Da.show(); 
      Da.setTitle("Date FROM"); 

      A = new DatePickerDialog(MainActivity.this, ADateSetListener, 2014, 10, 24); 

      A.show(); 
      A.setTitle("Date TO"); 


      //Erase the List View 
      List.setAdapter(null); 

      prepareProgressBar(); 
      query(); 

     } 

    }); 

Мой единственный вопрос: Как я могу ждать, когда DatePickerDialog отменит или дождитесь ввода пользователем ввода, а затем выполнит запрос?

ответ

0

Per the docs:

Мы рекомендуем использовать DialogFragment провести каждый раз или выбора даты.

Документы включают класс образца, который проходит DialogFragment (расположенный here):

public static class TimePickerFragment extends DialogFragment 
          implements TimePickerDialog.OnTimeSetListener { 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current time as the default values for the picker 
     final Calendar c = Calendar.getInstance(); 
     int hour = c.get(Calendar.HOUR_OF_DAY); 
     int minute = c.get(Calendar.MINUTE); 

     // Create a new instance of TimePickerDialog and return it 
     return new TimePickerDialog(getActivity(), this, hour, minute, 
       DateFormat.is24HourFormat(getActivity())); 
    } 

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     // Do something with the time chosen by the user 
    } 
} 

И вы бы показать, как это (опять же, код из the docs):

public void showTimePickerDialog(View v) { 
    DialogFragment newFragment = new TimePickerFragment(); 
    newFragment.show(getSupportFragmentManager(), "timePicker"); 
} 

И , в качестве дополнительного бонуса этот диалог действительно был бы modal (что вы собирались, когда вы сказали «wa это для увольнения ").

+0

Спасибо, я дам ему попробовать. – Vesco

0

Это простой диалог, я не понимаю, почему вы не используете слушателей по умолчанию:

DatePickerDialog dpd; 
dpd.setOnDismissListener(new DialogInterface.OnDismissListener() { 
    @Override 
    public void onDismiss(DialogInterface dialog) { 
     // Handle dismiss 
    } 
}); 
dpd.setOnKeyListener(new DialogInterface.OnKeyListener() { 
    @Override 
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
     // Handle clicks 
     return false; 
    } 
}); 
+0

Спасибо, я попробую. – Vesco

Смежные вопросы