onCreateDialog() で DatePickerDialog を返すために DialogFragment を使用しています。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");
}