Стиль материала средства выбора даты Android

Я реализовал выбор даты на своем фрагменте, это код:

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

Я хотел бы использовать DatePicker со стилем материала, я пытался использовать компиляцию этой библиотеки 'com.wdullaer:materialdatetimepicker:2.3.0', но результат тот же. Любая помощь, как я могу изменить этот DatePicker с помощью Material Date Picker? Спасибо


comment
использовать стили appcpmpat   -  person raktale    schedule 14.02.2017
comment
Да, Raktale прав, потому что вы используете ниже 5.0, и если вы хотите использовать тот же результат, вам следует использовать appCompat   -  person divyansh ingle    schedule 14.02.2017
comment
@APPGIS Спасибо ...   -  person Rahul Kushwaha    schedule 15.05.2019


Ответы (4)


Попробуйте это: Material DatePicker By Arsenal

Если есть сомнения, посмотрите мой репозиторий на github

GitHUb: - https://github.com/rahulkushwaha482/DatePickerDialogFragment

Сначала добавьте эти зависимости

implementation('com.shagi:material-datepicker:1.3') {
        exclude group: 'com.android.support'
    }

Добавить разрешение для Интернета

This is required by this project.

1) В котлине используйте этот код: -

 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 используйте этот код: -

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));

Ваш результат будет выглядеть так: -

введите здесь описание изображения

Надеюсь, это поможет вам, спасибо ....

person Rahul Kushwaha    schedule 30.03.2019

С помощью компонентов материалов для Android Вы можете использовать новый MaterialDatePicker.

В настоящее время он находится в активной разработке и требует версии 1.1.0 компонентов материалов для библиотеки Android.

implementation 'com.google.android.material:material:1.1.0'

Просто используйте:

       MaterialDatePicker.Builder<Long> builder = MaterialDatePicker.Builder.datePicker();
       builder.setTitleText(R.string.your_text);
       MaterialDatePicker<Long> picker = builder.build();
       picker.show(getSupportFragmentManager(), picker.toString());

введите описание изображения здесь

person Gabriele Mariotti    schedule 20.08.2019
comment
как выбрать дату - person Akash kumar; 16.05.2020

Попробуйте эту библиотеку: https://github.com/code-troopers/android-betterpickers

Вы используете средство выбора даты, например:

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();
    }
});
person Patricia Heimfarth    schedule 14.02.2017
comment
Я пробовал эту библиотеку, но показываю изображение кнопки datepicker, а не календарь. Как я могу настроить календарь на фрагмент - person APPGIS; 14.02.2017

Попробуйте этот, он сработает

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

введите здесь описание изображения

person Aditya Vyas-Lakhan    schedule 14.02.2017