В моей деятельности мне нужно 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);
}
вы пытаетесь иметь два виджета 'DatePicker' в одном диалоговом окне? Или вы имеете в виду наличие двух отдельных «DatePickerDialogs»? – CommonsWare
Два отдельных DatePickerDialogs – AndroidBegginer