在 Fragment 中实现 DatePicker [英] Implementing DatePicker in Fragment
问题描述
我使用的是 Fragment,它是 Fragment 的一个实例,而不是 DialogFragment 的实例.
I'am using Fragment which is an instance of Fragment and not of DialogFragment.
我在谷歌上搜索了大部分搜索结果,展示了如何使用 DialogFragment 来拥有 DatePicker.
I did google most of the search result shows how to use DialogFragment to have DatePicker.
这在我的情况下不起作用,因为 Fragment 和 DialogFragment 的类型不匹配
which isn't working in my case because of type mismatch of Fragment and DialogFragment
任何例子或想法都会有帮助
Any example or idea would be helpful
这是片段 Java 代码
public class CreateReportFragment extends Fragment {
public CreateReportFragment(){}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
rootView = inflater.inflate(R.layout.activity_create_report, container, false);
initViews();
return rootView;
}
private void initViews()
{
final Calendar c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
editTextDate.setText(new StringBuilder()
// Month is 0 based, just add 1
.append(year)
.append("-")
.append(month + 1)
.append("-").append(day));
buttonDate = (Button)rootView.findViewById(R.id.buttonDate);
}
如何在Fragment中实现DatePicker?
推荐答案
使用 DialogFragment
如果我猜对了,您想在单击 buttonDate 时显示 DatePicker
If i am guessing right you want to show a DatePicker on click of buttonDate
http://developer.android.com/guide/topics/ui/controls/pickers.html
点击按钮
DialogFragment picker = new DatePickerFragment();
picker.show(getFragmentManager(), "datePicker");
DatePickerFragment.java
DatePickerFragment.java
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar c = Calendar.getInstance();
c.set(year, month, day);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(c.getTime());
}
}
这篇关于在 Fragment 中实现 DatePicker的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!