Множественный диалог выбора даты - PullRequest
1 голос
/ 18 января 2012

В моем классе активности есть 4 диалоговых окна DatePicker, которые отображаются при нажатии 4 кнопок. Теперь для этих datePickerDialog я хочу использовать тот же слушатель.

        DatePickerDialog taxPickerDialog = new DatePickerDialog(getCurrentContext(),dateSetListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE));
        taxPickerDialog.show();

        DatePickerDialog fcPickerDialog = new DatePickerDialog(getCurrentContext(),dateSetListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE));
        fcPickerDialog.show();
        break;

        DatePickerDialog expiryPickerDialog = new DatePickerDialog(getCurrentContext(),dateSetListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE));
        expiryPickerDialog.show();


        DatePickerDialog permitPickerDialog = new DatePickerDialog(getCurrentContext(),dateSetListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE));
        permitPickerDialog.show();

Теперь я хочу использовать слушателя, но не знаю, как это реализовать ???

DatePickerDialog.OnDateSetListener dateSetListener =new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int month, int day) {
    switch(????){????}
}
};

Ответы [ 3 ]

0 голосов
/ 16 июля 2012

Надеюсь, вы уже решили эту проблему. Просто добавьте идею - «вы можете установить какой-то ID или TAG для DatePicker, связанного с каждым Dialog, а затем вы можете различить, запросив то, что вы установили (ID/TAG)».

0 голосов
/ 07 апреля 2014

Я знаю, что это поздний ответ, но я недавно перенес такое же состояние. Так вот мой ответ,

`DialogFragment.Show(FragmentManager manager, String tag))`
Метод

устанавливает тег для самого фрагмента. поэтому этот тег можно использовать следующим образом:

Fragment dateTo=getActivity().getSupportFragmentManager().findFragmentByTag("dateTo");
            if(dateTo!=null){
                //do something

            } 

один вариант использования - вы можете отобразить более одного Fragment в упражнении, а для идентификации фрагмента вы можете найти этот фрагмент по заданному тегу. Если это не ноль, бинго !!!

0 голосов
/ 18 января 2012
class DPlistener implements OnDateSetListener
{

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {

         //you can here
        if (view.equals(expiryPickerDialog))
        {
      //do needfull
              }
    }}

и зарегистрируйте этого слушателя в представлениях DatePicker. Убедитесь, что этот класс является внутренним классом вашей активности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...