2017-02-07 2 views
0

Мне нужно открыть DatePicker с датой по умолчанию, основанной на свойствах GYR-MONTH-DAY_OF_MONTH свойства GregorianCalendar.Открыть DatePicker с предлагаемой датой

Вот код, где я открываю DatePicker:

DialogFragment newFragment = new DatePickerFragment(); 
newFragment.show(getFragmentManager(), "datePicker"); 

Для Exemple, если мои значения, как это:

  • MyCalendar.YEAR = 2017
  • MyCalendar.MONTH = 2
  • MyCalendar.DAY_OF_MONTH = 22

Значение по умолчанию устанавливается, когда я открываю DatePicker будет:

enter image description here

Что я должен добавить, чтобы сделать это?

+0

В какой библиотеке вы используете? – qxz

ответ

3

В основном прямо из Android | Pickers

Plus, так же как и любой другой фрагмент, вы можете использовать set и get - Arguments передать данные в фрагменте.

Детали: Best practice for instantiating a new Android Fragment

public static class DatePickerFragment extends DialogFragment 
          implements DatePickerDialog.OnDateSetListener { 

    public static DatePickerFragment newInstance(int year,int month,int day) { 
     Bundle b = new Bundle(); 
     b.putInt("year", year); 
     // put others... 

     Fragment f = new DatePickerFragment(); 
     f.setArguments(b); 
     return f; 
    } 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

     // Use the current date as the default date in the picker 
     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); 

     // Update using the arguments 
     Bundle args = getArguments(); 
     if (args != null) { 
      year = args.getInt("year"); 
      // get others... 
     } 

     // Create a new instance of DatePickerDialog and return it 
     return new DatePickerDialog(getActivity(), this, year, month, day); 
    } 

    public void onDateSet(DatePicker view, int year, int month, int day) { 
     // Do something with the date chosen by the user 
    } 
} 

и использовать этот метод newInstance.

DialogFragment newFragment = DatePickerFragment.newInstance(2017,02,07); 
newFragment.show(getFragmentManager(), "datePicker"); 
Смежные вопросы