在我的视图中,我有一个按钮,按下该按钮会弹出一个DatePickerDialog。弹出的对话框上有一个“完成”按钮。当我按下该按钮时,所选日期将填充到EditText框中。
现在,当我按下返回按钮(
),它仍会将日期填充到EditText中。如何在不返回任何值的情况下关闭对话框。
这是我得到的代码-
调用片段的活动:
现在,当我按下返回按钮(
![Back button](https://istack.dev59.com/SZHYn.webp)
这是我得到的代码-
调用片段的活动:
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方法来处理未设置数据的情况。
有没有一种方法可以在不获取日期选择器值的情况下取消/关闭弹出的日期选择器?
谢谢。