meeftah
meeftah

Reputation: 95

Start datepicker from assined EditText

I have Button with date in it

image 1

when I click it, datepicker dialog shows up but start with current date

image 2

how I start datepicker dialog with the date that I've set in my Button

here is my code

date_btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Dialog.Builder builder = null;
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR) + 10;
        c.set(year, c.get(Calendar.MONTH), c.get(Calendar.DATE));
        builder = new com.rey.material.app.DatePickerDialog.Builder(R.style.CustomStyle_DatePicker) {
            @Override
            public void onPositiveActionClicked(DialogFragment fragment) {
                com.rey.material.app.DatePickerDialog dialog = (com.rey.material.app.DatePickerDialog) fragment.getDialog();
                String date = dialog.getFormattedDate(SimpleDateFormat.getDateInstance());
                date_btn.setText(date);
                selectedDate.set(dialog.getYear(), dialog.getMonth(), dialog.getDay());
                super.onPositiveActionClicked(fragment);
            }

            @Override
            public void onNegativeActionClicked(DialogFragment fragment) {
                super.onNegativeActionClicked(fragment);
            }
        }.dateRange(System.currentTimeMillis() - 1000, c.getTimeInMillis()).date(selectedDate.get(Calendar.DATE),
                selectedDate.get(Calendar.MONTH)
                , selectedDate.get(Calendar.YEAR));
        builder.positiveAction("OK")
                .negativeAction("CANCEL");
        DialogFragment fragment = DialogFragment.newInstance(builder);

        fragment.show(getSupportFragmentManager(), null);

    }
});

I've declare this in public

Calendar selectedDate = Calendar.getInstance();

Upvotes: 0

Views: 620

Answers (1)

Dhinakaran Thennarasu
Dhinakaran Thennarasu

Reputation: 3356

In intent instead of string add the Calender object itself like below..

intent.putExtra("ambiltgl", selectedDate); 

in other activity get the extra :

Intent extras = getIntent(); 
Calendar selectedDateFromPrevActivity= (Calendar) extras.getExtras().get("ambiltgl");

And as like earlier set it to datepicker..

.date(selectedDateFromPrevActivity.get(Calendar.DATE),
                        selectedDateFromPrevActivity.get(Calendar.MONTH)
                        , selectedDateFromPrevActivity.get(Calendar.YEAR));

Upvotes: 1

Related Questions