这是到目前为止的代码:DatePickerFragment:
public class DatePickerFragment extends DialogFragment {
DatePickerDialog.OnDateSetListener ondateSet;
private int year, month, day;
public DatePickerFragment() {
}
public void setCallBack(DatePickerDialog.OnDateSetListener ondate) {
ondateSet = ondate;
}
@SuppressLint("NewApi")
@Override
public void setArguments(Bundle args) {
super.setArguments(args);
year = args.getInt("year");
month = args.getInt("month");
day = args.getInt("day");
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), ondateSet, year, month, day);
return datePickerDialog;
}
}
和部分主要代码:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDatePicker();
}
});
...
private void showDatePicker() {
DatePickerFragment date = new DatePickerFragment();
Calendar calender = Calendar.getInstance();
Bundle args = new Bundle();
args.putInt("year", calender.get(Calendar.YEAR));
args.putInt("month", calender.get(Calendar.MONTH));
args.putInt("day", calender.get(Calendar.DAY_OF_MONTH));
date.setArguments(args);
date.setCallBack(new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
editText.setText(String.valueOf(dayOfMonth) + "/" + String.valueOf(month + 1)
+ "/" + String.valueOf(year));
}
});
date.show(getFragmentManager(), "Date Picker");
}
在这种情况下,我可以将datePickerMode设置为微调器吗?供您参考,我正在使用片段。
提前感谢!
是的,您可以如下设置android:datePickerMode
至spinner
,您将获得此输出。
<DatePicker
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:datePickerMode="spinner"/>
您还可以在这两页上找到有关如何自定义此内容的更多信息。
好,我找到了答案。
我刚刚更改了AppTheme样式:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlActivated">@color/colorPrimary</item>
<item name="android:timePickerDialogTheme">@style/PickerDialogCustom</item>
<item name="android:datePickerDialogTheme">@style/PickerDialogCustom</item>
<item name="alertDialogTheme">@style/AlertDialogCustom</item>
</style>
<style name="PickerDialogCustom" parent="AlertDialogCustom">
<item name="android:textColor">@color/colorPrimary</item>
<item name="android:textColorPrimary">@color/colorPrimaryDark</item>
<item name="colorControlNormal">@color/greyLight500</item>
<item name="android:layout_margin">2dp</item>
<item name="android:datePickerMode">spinner</item>
</style>
<style name="AlertDialogCustom" parent="Theme.AppCompat.Light.Dialog.Alert">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorPrimary</item>
<item name="android:positiveButtonText">@color/colorPrimary</item>
<item name="android:negativeButtonText">@color/greyDark200</item>
<item name="buttonBarNegativeButtonStyle">@style/negativeButton</item>
<item name="android:datePickerStyle">@style/PickerDialogCustom</item>
</style>