【发布时间】:2018-06-14 18:03:22
【问题描述】:
我在片段中的代码:
public class DatepickerFragment extends Fragment {
TextView etDate;
static final int DATE_ID = 0;
Calendar C = Calendar.getInstance();
private int mYearIni, mMonthIni, mDayIni, sYearIni, sMonthIni, sDayIni;
private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
mYearIni = year;
mMonthIni = month;
mDayIni = dayOfMonth;
etDate.setText(mDayIni + "-" + (mMonthIni + 1) + "-" + mYearIni + " ");
}
};
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_ID:
return new DatePickerDialog(getContext(), mDateSetListener, sYearIni, sMonthIni, sDayIni);
}
return null;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_datepicker, container, false);
etDate= rootView.findViewById(R.id.etDate);
sMonthIni = C.get(Calendar.MONTH);
sDayIni = C.get(Calendar.DAY_OF_MONTH);
sYearIni = C.get(Calendar.YEAR);
etDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().showDialog(DATE_ID);
}
});
return rootView;
}
我正在尝试使用此代码进行活动,然后成功,但我尝试在 Fragment datepicker 中未显示。我的片段在滑块 viewpager 中,我尝试使用片段对话框,但 viewpager 适配器出错。
如何在 Fragment 中显示 DatePicker?
【问题讨论】:
-
您不能同时覆盖
onCreateView和onCreateDialog。如果你想从你的片段中显示一个对话框,你需要另一个片段,一个 DialogFragment。 -
避免在 onCreateView 方法中设置点击监听器等。在 onViewCreated 方法中这样做
标签: android android-fragments android-dialog android-datepicker