[英]Open DatePicker with suggested date
I need to open a DatePicker with a default date based on the YEAR-MONTH-DAY_OF_MONTH properties of a GregorianCalendar. 我需要基于GregorianCalendar的YEAR-MONTH-DAY_OF_MONTH属性打开具有默认日期的DatePicker。
Here is the code where I open the DatePicker: 这是我打开DatePicker的代码:
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getFragmentManager(), "datePicker");
For exemple, if my values are like this: 例如,如果我的价值观是这样的:
The default value set when I open the DatePicker would be: 打开DatePicker时设置的默认值为:
What do I have to add to do that? 为此我必须添加什么?
Basically straight from Android | 基本上直接来自Android Pickers
选择器
Plus, just like any other Fragment, you can use set
and get
- Arguments
to pass data into the fragment. 另外,就像任何其他的片段,您可以使用
set
和get
- Arguments
将数据传递到片段。
Details: Best practice for instantiating a new Android Fragment 详细信息: 实例化新的Android片段的最佳做法
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
}
}
And use that newInstance
method. 并使用该
newInstance
方法。
DialogFragment newFragment = DatePickerFragment.newInstance(2017,02,07);
newFragment.show(getFragmentManager(), "datePicker");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.