在我看来,我有一个按钮,按下它会弹出一个 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 的方法来处理未设置数据的情况。
有没有办法取消/关闭弹出的日期选择器而不获得它的价值?
谢谢。