すべてのドキュメントと例は、「datepicker ダイアログから選択した日付をアクティビティに戻す方法」に関連しているようです。そして、それらのほとんどすべてが、datepicker ダイアログで現在の日付をデフォルトの日付として設定します。ただし、日付ピッカーが開いたときに、現在の日付ではなくその日付が表示されるように、特定の日付を渡すにはどうすればよいですか?
私が直面している問題は、ユーザーがボタンをクリックして日付ピッカーのダイアログが初めて開いたときに、現在の時刻が表示されることです。
ユーザーが値を変更し、完了をクリックします。
ボタンをもう一度クリックすると、datepicker ダイアログが開きます。ただし、変更された日付ではなく、値はデフォルトの日付のままです!!
コード:
public class DatePickerFragment extends SherlockDialogFragment
implements android.app.DatePickerDialog.OnDateSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
//TODO Use current date is date null, else show currently displayed date
// 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 monthOfYear,
int dayOfMonth) {
((NewTransactionActivity) getActivity()).updateDate(year, monthOfYear, dayOfMonth);
}
}
上記のコードは、日付ピッカーが常にデフォルトの日付で表示される理由です。ただし、このフラグメントに日付値を渡すにはどうすればよいですか?
これはアクティビティのコードです:
public void showDatePickerDialog(View v) {
Bundle currentDate = new Bundle();
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}