我想用模式微调器而不是日历显示DatePickerDialog。在我的styles.xml中,我尝试使用此属性,但它说我应该使用的最小SDK版本是API 21.
<item name="android:datePickerMode">spinner</item>
我使用的是最低版本的SDK 18.如果API低于API 21,如何将默认日期选择器模式设置为微调器?
这是我日期选择器的Java代码:
public class MyDatePicker extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(), R.style.MyTheme, this, 0, 0, 0 );
return datePickerDialog;
}
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
}
}
谢谢!
答案 0 :(得分:7)
找到答案。我没有在onCreateDialog方法中创建一个新的DatePickerDialog,而是在方法中为日期选择器创建了自己的布局。
这是xml布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/dialog_date_datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarViewShown="false"
android:datePickerMode="spinner"
android:spinnersShown="true">
</DatePicker>
这是Java代码:
public class MyDatePicker extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
View v = getActivity().getLayoutInflater().inflate(R.layout.datepicker, null);
return new AlertDialog.Builder(getActivity()).setView(v).create();
}
}
谢谢!
答案 1 :(得分:0)
我的建议 首先获取API版本..如果API版本低于21,则将spinner visible和date picker设置为不可见 获取API版本。检查此链接:
Retrieving Android API version programmatically
如果这可以解决您的问题,请告诉我,我不确定我的建议是否可靠
谢谢!