Android Date Picker Material Style
我已经在片段上实现了日期选择器,这是代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | edittext_from.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); android.app.DatePickerDialog datePickerDialog = new android.app.DatePickerDialog(getContext(), new android.app.DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { edittext_from.setText(String.format("%04d-%02d-%02d", year, (monthOfYear + 1), dayOfMonth)); } }, mYear, mMonth, mDay); datePickerDialog.show(); } }); |
我的日期选择器的样式是旧样式,如下所示:
我想使用具有材料样式的DatePicker,我尝试使用此库编译
任何帮助我如何使用Material Date Picker更改此DatePicker?
谢谢
尝试这个 :
物料DatePicker按阿森纳
如有任何疑问,请参阅我的github存储库
Github上:-https://github.com/rahulkushwaha482/DatePickerDialogFragment
首先添加此依赖项
1 2 3 | implementation('com.shagi:material-datepicker:1.3') { exclude group: 'com.android.support' } |
添加Internet权限
1 | This is required by this project. |
1)在Kotlin中,使用此代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | val dialog = DatePickerFragmentDialog.newInstance({ view, year, monthOfYear, dayOfMonth -> Toast.makeText(applicationContext, "year $year month $monthOfYear day $dayOfMonth", Toast.LENGTH_SHORT).show() }, 2017, 11, 4) dialog.show(supportFragmentManager,"tag") /* Possible params dialog.setMaxDate(System.currentTimeMillis()) dialog.setMinDate(System.currentTimeMillis()) dialog.setYearRange(2000, 2010) dialog.setCancelColor(Color.MAGENTA) dialog.setOkColor(Color.MAGENTA) dialog.setAccentColor(Color.MAGENTA) dialog.setCancelText("Out") dialog.setOkText("Fine") */ |
2)在Java中,使用以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | DatePickerFragmentDialog datePickerFragmentDialog=DatePickerFragmentDialog.newInstance(new DatePickerFragmentDialog.OnDateSetListener() { @Override public void onDateSet(DatePickerFragmentDialog view, int year, int monthOfYear, int dayOfMonth) { txtTodayDate.setText(dayOfMonth +"/" + (monthOfYear + 1) +"/" + year); } },mYear, mMonth, mDay); datePickerFragmentDialog.show(getSupportFragmentManager(),null); datePickerFragmentDialog.setMaxDate(System.currentTimeMillis()); datePickerFragmentDialog.setYearRange(1900,mYear); datePickerFragmentDialog.setCancelColor(getResources().getColor(R.color.colorPrimaryDark)); datePickerFragmentDialog.setOkColor(getResources().getColor(R.color.colorPrimary)); datePickerFragmentDialog.setAccentColor(getResources().getColor(R.color.colorAccent)); datePickerFragmentDialog.setOkText(getResources().getString(R.string.ok_dob)); datePickerFragmentDialog.setCancelText(getResources().getString(R.string.cancel_dob)); |
您的结果将如下所示:-
希望这对您有所帮助。
试试这个库:
https://github.com/code-troopers/android-betterpickers
您可以使用以下日期选择器:
1 2 3 4 5 6 7 8 9 10 | button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DatePickerBuilder dpb = new DatePickerBuilder() .setFragmentManager(getSupportFragmentManager()) .setStyleResId(R.style.BetterPickersDialogFragment) .setYearOptional(true); dpb.show(); } }); |
借助Android的材料组件,您可以使用新的
目前,它正在积极开发中,并且需要1.1.0版的材料组件才能用于android库。
1 | implementation 'com.google.android.material:material:1.1.0-alpha09' |
只需使用:
1 2 3 4 | MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker(); builder.setTitleTextResId(R.string.your_text); MaterialDatePicker<Long> picker = builder.build(); picker.show(getSupportFragmentManager(), picker.toString()); |
试试这个会起作用
1 2 3 4 5 6 7 8 9 | repositories{ maven { url"https://jitpack.io" } } dependencies { compile 'com.github.jaydeep17:datetimepicker:0.0.4' } |
https://github.com/jaydp17/datetimepicker
https://github.com/flavienlaurent/datetimepicker
http://www.viralandroid.com/2015/11/android-date-picker-example.html