我已经在我的Android应用程序中定义DatePickerFragment,这里是它的代码:我想要检索从TaskFragment这个日期选择器的日期,并设置获取Date对象中的Android
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { private int year; private int month; private int day; @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); // Create a new instance of DatePickerDialog and return it return new DatePickerDialog(getActivity(), this, year, month, day); } @Override public void onDateSet(DatePicker view, int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public Date getDateFromDatePicker(){ Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); return calendar.getTime(); } }
的“日期“属性任务等于所选日期
// Method for date picker to appear once the "Due Date" button is clicked.
datePickerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm = getActivity().getFragmentManager();
DatePickerFragment datePicker = new DatePickerFragment();
datePicker.show(fm, "datePicker");
task.setDate(datePicker.getDateFromDatePicker());
//test
System.out.println(task.getDate());
}
});
点击按钮时会出现日期选择器。但是,日期设置不正确,实际上只要按下日期按钮即可设置日期,而不是从选择器中选择日期。 此外,打印日期时,我得到以下不管我选择什么日期: I/System.out的:星期三12月31日10点47分38秒GMT + 00:00 2 这里读了一些解决方案,指示我来定义onDateSet和getDateFromDatePicker方法,但它们似乎不能正常工作。 任何帮助非常感谢,谢谢!
你在哪里显示日期选择器,在活动? – FrankR
否在名为TaskFragment的片段中。 – sums22
我已经想通了,在调用方法getDateFromDatePicker发生被称为onDateSet方法之前,所以我想我不得不采取从onDateSet的值,并将其存放的地方,使他们可以通过TaskFragment类访问。 – sums22