简体   繁体   中英

Multiple Datepickers in android

In android I am trying to use 3 datepickers on one page. but the listener is only picking up the value of datepicker which I changed last, its assigning same value for all 3 of them.

I should get 3 different values in date1, date5 and date7. so I can save it in database.

//set the current date as default date
    date = (DatePicker) findViewById(R.id.datePicker1);


    date4 = (DatePicker) findViewById(R.id.datePicker2);


    date6 = (DatePicker) findViewById(R.id.datePicker3);


    OnDateChangedListener one_dateListener,two_dateListener,three_dateListener;


    date.init(date.getYear(), date.getMonth(), date.getDayOfMonth(),
            one_dateListener=   new OnDateChangedListener() {
                public void onDateChanged(DatePicker view, int year1,
                        int monthOfYear, int dayOfMonth) {
                    day = dayOfMonth;
                    month = monthOfYear;
                    year = Integer.toString(year1);
                }
            });
    date1 = pad(day)+"-"+padMonth(month)+"-"+year1; 

    System.out.println("Date 1"+date1);


    date4 = (DatePicker) findViewById(R.id.datePicker2);
    date4.init(date4.getYear(), date4.getMonth(), date4.getDayOfMonth(),
            two_dateListener=new OnDateChangedListener() {
                public void onDateChanged(DatePicker view, int year1,
                        int monthOfYear, int dayOfMonth) {
                    day = dayOfMonth;
                    month = monthOfYear;
                    year = Integer.toString(year1);
                }
            });


    date5 = pad(date4.getDayOfMonth())+"-"+padMonth(date4.getMonth())+"-"+date4.getYear();  




    date6 = (DatePicker) findViewById(R.id.datePicker3);
    date6.init(date6.getYear(), date6.getMonth(), date6.getDayOfMonth(),
            three_dateListener=  new OnDateChangedListener() 
    {
                public void onDateChanged(DatePicker view, int year1,
                        int monthOfYear, int dayOfMonth) {
                    day = dayOfMonth;
                    month = monthOfYear;
                    year = Integer.toString(year1);
                }
    }
    );



    date7 = pad(date6.getDayOfMonth())+"-"+padMonth(date6.getMonth())+"-"+date6.getYear();  

You should DatePickerDialog & TimePickerDialog, with this you wont have any problem.

In my app, I am using 2 different DatePickerDialog, and it works just fine.

I just edited small portion of the code. Can't edit 400 lines of codes.

private DatePickerDialog showDatePicker(){
    DatePickerDialog datePicker = new DatePickerDialog(smileIt.this, new DatePickerDialog.OnDateSetListener() {


        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            // TODO Auto-generated method stub
            mCalendar.set(Calendar.YEAR, year);
            mCalendar.set(Calendar.MONTH, monthOfYear);
            mCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            mToday.set(Calendar.YEAR, year);
            mToday.set(Calendar.MONTH, monthOfYear);
            mToday.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateDateButtonText();

        }
    }, mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH));

    return datePicker;
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM