Search code examples
androiddatepickermaterial-designmaterial-componentsmaterial-components-android

Android Date Picker Material Style


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


Solution

  • 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....