rac*_*min 4 android android-datepicker datepickerdialog
我想用模式微调器而不是日历显示DatePickerDialog.在我的styles.xml中,我尝试使用此属性,但它说我应该使用的最小SDK版本是API 21.
<item name="android:datePickerMode">spinner</item>
Run Code Online (Sandbox Code Playgroud)
我使用的是最低版本的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) {
}
Run Code Online (Sandbox Code Playgroud)
}
谢谢!
找到答案.我没有在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>
Run Code Online (Sandbox Code Playgroud)
这是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();
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 0
我的建议首先获取 API 版本。如果 API 版本低于 21,则将微调器设置为可见,将日期选择器设置为不可见以获取 API 版本。检查此链接:
让我知道这是否可以解决您的问题,我不确定我的建议是否可靠
谢谢!
| 归档时间: |
|
| 查看次数: |
9516 次 |
| 最近记录: |