我已經在我的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