【发布时间】:2012-12-07 04:55:44
【问题描述】:
我正在使用 DialogFragment 在 onCreateDialog() 中返回 DatePickerDialog。我已将 dateSetListener 设置为 DialogFragment (在下面的示例中为“this”),除了在屏幕旋转发生时调用 onDateSet() 之外,一切正常,这是不可取的。如何在屏幕旋转时不调用 onDateSet?
我的 DialogFragment
public static class DateDialogFragment extends DialogFragment implements
DatePickerDialog.OnDateSetListener{
public static DateDialogFragment newInstance() {
return new DateDialogFragment();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new DatePickerDialog(getActivity(), this, 2012, 11, 19);
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
//This is called when screen rotated, which I dont want
Toast.makeText(getActivity(), "Year: "+year+" Month: "+monthOfYear+" Day: "+dayOfMonth, Toast.LENGTH_SHORT).show();
}
}
我就是这样称呼它的
if(getActivity()!=null){
FragmentManager fm = getActivity().getSupportFragmentManager();
DialogFragment newFragment = DateDialogFragment.newInstance();
newFragment.show(fm, "dialog");
}
【问题讨论】:
-
我说的对吗?您不想在屏幕旋转时调用 dateset 方法
-
自从在此问题上发布赏金后,我发现它与 stackoverflow.com/questions/11444238/… 重复,但由于我的赏金,我无法投票关闭它。
标签: android android-fragments android-lifecycle