私の見解では、押すと DatePickerDialog がポップアップするボタンがあります。ポップアップしたダイアログには「完了」ボタンがあります。そのボタンを押すと、選択した日付が EditText ボックスに取り込まれます。
ここで、戻るボタン ( ) を押すと、EditText に日付が入力されます。ダイアログから値を返さずにダイアログを閉じるにはどうすればよいですか。
これは私が持っているコードです-
フラグメントを呼び出すアクティビティ:
public class TransactionActivity extends FragmentActivity implements iRibbonMenuCallback {
.....
public void selectDate(View view) {
// This is the method invoked by the button
SelectDateFragment newFragment = new SelectDateFragment();
newFragment.show(getSupportFragmentManager(), "DatePicker");
}
public void populateSetDate(int year, int month, int day) {
// Puts the date in the EditText box
mEdit = (EditText)findViewById(R.id.DateText);
mEdit.setText(month+"/"+day+"/"+year);
}
}
ダイアログのフラグメント (Android API ガイドのこのページに基づく):
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
// Calls a method on the activity which invokes this fragment
((TransactionActivity)getActivity()).populateSetDate(yy, mm+1, dd);
}
}
データが設定されていない場合を処理するための onDataSet に類似したメソッドはないようです。
値を取得せずにポップアップした日付ピッカーをキャンセル/却下する方法はありますか?
ありがとう。