Tôi đang sử dụng DialogFragment để trả về DatePickerDialog trong onCreateDialog(). Tôi đã đặt dateSetListener là DialogFragment ("this" trong ví dụ dưới đây) và mọi thứ hoạt động ngoại trừ onDateSet() được gọi khi xoay màn hình xảy ra, điều không mong muốn. Làm thế nào tôi có thể nhận được onDateSet để không được gọi khi màn hình được xoay?DatePickerDialog onDateSet được gọi khi xoay
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();
}
}
Và đây là cách tôi gọi nó là
if(getActivity()!=null){
FragmentManager fm = getActivity().getSupportFragmentManager();
DialogFragment newFragment = DateDialogFragment.newInstance();
newFragment.show(fm, "dialog");
}
Có một cái nhìn tại [setRetainInstance()] (http://stackoverflow.com/questions/11182180/understanding-fragments-setretaininstanceboolean) – Dmide
là tôi sửa ? bạn không muốn gọi lại phương thức ** dateet ** khi màn hình xoay –
Vì đăng một tiền thưởng cho câu hỏi này, tôi đã phát hiện ra rằng đó là bản sao của http://stackoverflow.com/questions/11444238/jelly-bean- datepickerdialog-là-có-một-cách-to-hủy bỏ nhưng tôi không thể bỏ phiếu để đóng nó vì tiền thưởng của tôi. –