0

Android では、1 つのページで 3 つの日付ピッカーを使用しようとしています。しかし、リスナーは最後に変更したdatepickerの値のみを取得しており、3つすべてに同じ値を割り当てています。

date1、date5、date7 で 3 つの異なる値を取得する必要があります。だから私はデータベースに保存することができます。

//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();  
4

1 に答える 1

0

DatePickerDialog と TimePickerDialog を使用する必要があります。これで問題はありません。

私のアプリでは、2 つの異なる DatePickerDialog を使用していますが、問題なく動作します。

コードのごく一部を編集しただけです。400 行のコードを編集できません。

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;
}
于 2013-09-14T04:35:55.670 に答える