Bha*_*rat 5 android android-fragments
在我的视图中,我有一个按钮,按下时会弹出一个DatePickerDialog.poppedup对话框有一个"完成"按钮.当我按下该按钮时,所选日期将填充到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);
}
}
Run Code Online (Sandbox Code Playgroud)
Dialog的片段(基于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);
}
}
Run Code Online (Sandbox Code Playgroud)
似乎没有与onDataSet类似的方法来处理未设置数据的情况.
有没有办法取消/解除弹出的datepicker而没有得到它的价值?
谢谢.
看起来Jelybean存在一个错误,其中"取消"按钮不起作用(因此后退按钮).这是在Jelly Bean中讨论的DatePickerDialog ---有没有办法取消?
大卫Cesarino,谁报告了上述职位的bug和解决办法,张贴了他的解决方案在这里和SO.
cavega稍微修改了上面的解决方案,允许将DatePickerDialog中的日期初始化为今天的日期以外的其他日期.代码可以在这里找到.我使用他的解决方案并让它工作.
| 归档时间: |
|
| 查看次数: |
8619 次 |
| 最近记录: |