2016-11-15 4 views
0

В моей деятельности мне нужно 2 datepickers. К сожалению, у меня нет ни малейшего понятия, как это кодировать. Мне нужно, чтобы они отображались в виде диалогов из-за нехватки места.Два DatePickers за одну активность

Вот что у меня есть и работает для одного DatePicker:

public static class DatePickerFragment extends DialogFragment { 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 


     return new DatePickerDialog(getActivity(), 
       (DatePickerDialog.OnDateSetListener) 
         getActivity(), year, month, day); 

    } 

} 

public void datePicker(View view) { 
    DatePickerFragment fragment = new DatePickerFragment(); 
    fragment.show(getSupportFragmentManager(), "date"); 
} 

и соответствующего слушателя:

private void setDate(final Calendar calendar) { 
    final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); 

    date = calendar.getTime(); 

    Button btn = (Button) findViewById(R.id.date_text); 

    dateString = dateFormat.format(calendar.getTime()); 
    btn.setText(dateString); 
    } 

теперь я бы нужен второй слушатель для второго фрагмента, но я не знаю, как реализовать его. (Фрагмент возвращает только диалог с уже настройки слушателя) \

EDIT:

я придумал идею, но текст кнопки устанавливается только после того, как 2-й попытки:

public void datePicker2 (View view){ 

    final Calendar c = Calendar.getInstance(); 
    int year = c.get(Calendar.YEAR); 
    int month = c.get(Calendar.MONTH); 
    int day = c.get(Calendar.DAY_OF_MONTH); 

    DatePickerDialog dialog = new DatePickerDialog(this,listener,year,month,day); 

    dialog.show(); 



    listener = new DatePickerDialog.OnDateSetListener() { 

     @Override 
     public void onDateSet(DatePicker datePicker, int i, int i1, int i2) { 

      Calendar cal = new GregorianCalendar(i, i1, i2); 
      setDateTo(cal); 
     } 
    }; 

} 

private void setDateTo(final Calendar calendar) { 

    final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); 

    date = calendar.getTime(); 

    Button btn = (Button) findViewById(R.id.date_to_text); 

    dateString = dateFormat.format(calendar.getTime()); 
    btn.setText(dateString); 

} 
+0

вы пытаетесь иметь два виджета 'DatePicker' в одном диалоговом окне? Или вы имеете в виду наличие двух отдельных «DatePickerDialogs»? – CommonsWare

+0

Два отдельных DatePickerDialogs – AndroidBegginer

ответ

-1

Move

Button btn = (Button) findViewById(R.id.date_to_text); 

в OnCreate

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