2013-09-14 5 views
0

В андроиде Я пытаюсь использовать 3 datepickers на одной странице. но слушатель только подбирает значение datepicker, которое я изменил последним, присваивая ему одинаковое значение для всех трех из них.Несколько Datepickers в android

Я должен получить 3 разных значения в date1, date5 и date7. поэтому я могу сохранить его в базе данных.

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

ответ

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; 
} 
+0

вы можете привести пример или ваш код. Спасибо – user2778454

+0

@ user2778454, я отредактировал свой комментарий. –

Смежные вопросы