单击我的(Scherlock)FragmentActivity中的EditText字段时,将显示DatePicker.选择日期并单击"应用"后,将使用日期填充Edittext字段.这可以正常工作,直到我在DatePicker可见时旋转屏幕.它的onCreateDialog方法再次启动,一切看起来都正确.但是,当我单击"应用"时,EditText字段中没有填写任何日期.
这很可能是因为我没有设法保留听众.这个问题与DialogFragment非常相似- 在屏幕旋转后保留监听器但是在我的代码中我有一个DialogFragment中包含的监听器接口,我无法通过调用FragmentActivity来达到监听器,(正如解决方案在上述问题中所建议的那样).
请帮助我,这真的不应该那么难,但我一直在使用它的时间比我承认的还要长......
这是DialogFragment代码:
public class DateDialogFragment extends SherlockDialogFragment {
public static String TAG = "DateDialogFragment";
static Context mContext;
static int mYear;
static int mMonth;
static int mDay;
static DateDialogFragmentListener mListener;
public static DateDialogFragment newInstance(Context context, DateDialogFragmentListener listener, Calendar now) {
DateDialogFragment dialog = new DateDialogFragment();
mContext = context;
mListener = listener;
mYear = now.get(Calendar.YEAR);
mMonth = now.get(Calendar.MONTH);
mDay = now.get(Calendar.DAY_OF_MONTH);
return dialog;
}
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new DatePickerDialog(mContext, mDateSetListener, …Run Code Online (Sandbox Code Playgroud) android listener orientation-changes android-dialogfragment dialogfragment