Używam funkcji DialogFragment, aby zwrócić obiekt DatePickerDialog w onCreateDialog(). Ustawiłem dateSetListener na DialogFragment ("to" w przykładzie poniżej) i wszystko działa z wyjątkiem tego, że onDateSet() jest wywoływany, gdy występuje rotacja ekranu, co jest niepożądane. Jak mogę uzyskać dostęp do programu DateSet, aby nie dzwonić po obróceniu ekranu?DatePickerDialog onDateSet wywołany po obróceniu
My 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();
}
}
I to jest jak ja to nazywam
if(getActivity()!=null){
FragmentManager fm = getActivity().getSupportFragmentManager();
DialogFragment newFragment = DateDialogFragment.newInstance();
newFragment.show(fm, "dialog");
}
Zapraszamy do obejrzenia [setRetainInstance()] (http://stackoverflow.com/questions/11182180/understanding-fragments-setretaininstanceboolean) – Dmide
mam rację ? nie chcesz przywołać w trybie ** daty ** podczas obracania ekranu –
Od momentu zaksięgowania nagrody za to pytanie odkryłem, że jest to duplikat http://stackoverflow.com/questions/11444238/jelly-bean- datepickerdialog-is-there-a-way-to-cancel, ale nie mogę głosować, aby zamknąć to ze względu na moją nagrodę. –