Android Date Picker Material Style

18,965

Solution 1

Try this : Material DatePicker By Arsenal

If any doubt see my github Repository

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

First add this dependencies

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

Add permission for Internet

This is required by this project.

1)In kotlin ,use this code:-

 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)In Java , use this code:-

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

Your result will look like this:-

enter image description here

Hope this will help you thanks....

Solution 2

With the Material Components for Android you can use the new MaterialDatePicker.

Currently it is under active development and requires version 1.1.0 of material components for android library.

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

Just use:

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

enter image description here

Solution 3

Try this library: https://github.com/code-troopers/android-betterpickers

You use the date picker like:

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();
    }
});
Share:
18,965
APPGIS
Author by

APPGIS

Updated on June 18, 2022

Comments

  • APPGIS
    APPGIS almost 2 years

    i have implemented the date picker on my fragment, this is the code:

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

    and the style of my date picker is a old style as this :DatePicker

    I would like to use a DatePicker with material style, i have tried to use this library compile 'com.wdullaer:materialdatetimepicker:2.3.0', but the result is the same. Any help how i can change this DatePicker with Material Date Picker? Thanks

  • APPGIS
    APPGIS about 7 years
    I have try this library but show the datepicker buttom image and not calendar. How i can set calendar into fragnment
  • Akash kumar
    Akash kumar almost 4 years
    how to pick date