-1

I want to set two different Date(s) to two different EditText(s) using datePickerDialog. i am using two different String objects to store date and then setting them on two different EditText(s) respectively but the problem is both the EditText(s) are taking same values.

protected Dialog onCreateDialog(int id) {

    // Get the calander
    java.util.Calendar c = java.util.Calendar.getInstance();

    // From calander get the year, month, day, hour, minute
    int year = c.get(java.util.Calendar.YEAR);
    int month = c.get(java.util.Calendar.MONTH);
    int day = c.get(java.util.Calendar.DAY_OF_MONTH);

    switch (id) {
        case Date_from:

            // Open the datepicker dialog
            return new DatePickerDialog(WastageRecordsByDateActivity.this, date_listener, year,
                    month, day);
        case Date_to:

            return new DatePickerDialog(WastageRecordsByDateActivity.this, date_listener, year,
                    month, day);
    }
    return null;
}

// Date picker dialog
DatePickerDialog.OnDateSetListener date_listener = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int month, int day) {
        // store the data in one string and set it to edittext
        String date1 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                + "-" + String.valueOf(year);
        editTextFrom.setText(date1);

        String date2 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                + "-" + String.valueOf(year);
        editTextTo.setText(date2);
    }
};

}

Suhas Wagre
  • 100
  • 1
  • 1
  • 9

4 Answers4

0

Its happening because your both Strings object are having same data , that is coming from method. What you are doing is just saving that data on different objects, but data is same.

 String date1 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                + "-" + String.valueOf(year);
        editTextFrom.setText(date1);

 String date2 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                + "-" + String.valueOf(year);
        editTextTo.setText(date2);
Abdul Kawee
  • 2,687
  • 1
  • 14
  • 26
0

It's happening because you are setting same value to both the editText as shown below,

        String date1 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                + "-" + String.valueOf(year);
        editTextFrom.setText(date1);

        String date2 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                + "-" + String.valueOf(year);
        editTextTo.setText(date2);

As we don't have the whole source code of yours, but you can trya little patch here, you can pass another arg Boolean,

    switch (id) {
            case Date_from:

                // Open the datepicker dialog
                return new DatePickerDialog(WastageRecordsByDateActivity.this, date_listener, year,
                        month, day, true);
            case Date_to:

                return new DatePickerDialog(WastageRecordsByDateActivity.this, date_listener, year,
                        month, day, false);
        }
        return null;
    }

    // Date picker dialog
    DatePickerDialog.OnDateSetListener date_listener = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int month, int day, Boolean stat) {
            // store the data in one string and set it to edittext
            if(stat==true){
                String date1 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                    + "-" + String.valueOf(year);
                editTextFrom.setText(date1);
            }
            if(stat==false){
                 String date2 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                    + "-" + String.valueOf(year);
                 editTextTo.setText(date2);
            }
        }
    };
Nirav Madariya
  • 1,470
  • 2
  • 24
  • 37
0

try this

switch (id) {
        case Date_from:

            // Open the datepicker dialog
            return new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {
                        @Override
                        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
String date1 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                + "-" + String.valueOf(year);
        editTextFrom.setText(date1);
                        }
                    }, 2017, 04, 25);
        case Date_to:

            return new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {
                        @Override
                        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                            String date2 = String.valueOf(day) + "-" + String.valueOf(month + 1)
                + "-" + String.valueOf(year);
                         editTextTo.setText(date2);
                        }
                    }, 2017, 04, 25);
    }
Bhupat Bheda
  • 1,968
  • 1
  • 8
  • 13
0

try This and Let me know bro,

    edtxt1a.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(edtxt1a.getWindowToken(), 0);

                showDispatchCalendar();

            }
        });


        private void showDispatchCalendar() {
        Calendar c1 = Calendar.getInstance();
        DatePickerDialog da = new DatePickerDialog(getActivity(), mDateSetListener, sYearIni, sMonthIni, sDayIni);
        c1.add(DATE, 0);
        Date newDate = c1.getTime();
        da.getDatePicker().setMinDate(newDate.getTime());

        da.show();

    }

private DatePickerDialog.OnDateSetListener mDateSetListener =
            new DatePickerDialog.OnDateSetListener() {
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    mYearIni = year;
                    mMonthIni = monthOfYear;
                    mDayIni = dayOfMonth;

                    colocar_fecha();
                }
            };


            private void colocar_fecha() {

        day1 = mDayIni;
        month1 = mMonthIni + 1;
        year1 = mYearIni;
        edtxt2a.setEnabled(true);
        edtxt2a.setBackgroundResource(R.drawable.rounded_border_edittext);
        edtxt1a.setText(day1 + "-" + month1 + "-" + year1 + " ");
    }
Rajiv Reddy
  • 411
  • 4
  • 15