Autore Topic: Doppio numberPicker  (Letto 632 volte)

Offline Twing

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC exlporer
  • Sistema operativo:
    Ubunutu 11.04
Doppio numberPicker
« il: 30 Marzo 2012, 16:20:19 CEST »
0
Salve ragazzi.
Io sto "usando" da un bel pò il vostro sito in quanto ho trovate parecchie soluzioni ai miei problemi e ringrazio tutti quelli che hanno contribuito.
Ora però ho bisogno di sottoporvi un problema perchè proprio non so come fare.
Io ho una classe activity per prendere dei dati dall'utente e ho inserito 2 bottoni ognuno dei quali mi apre un alert dialog nel quale ho il mio datePicker.
Il problema è che essendo 2 non riesco a separare i ritorni quindi se agisco sul secondo mi si modifica anke la prima data cosa che vorrei evitare!!!

Di seguito il codice con i 2 on click listener per i 2 bottoni
Codice (Java): [Seleziona]
String data_cell=DateFormat.getDateInstance().format(new Date());
                change_start_date.setText(data_cell);
                change_end_date.setText(data_cell);
                sDate=data_cell;
                eDate=data_cell;
               
                change_start_date.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(0);
               
            }
        });
       
                Calendar scal = Calendar.getInstance();
        sYear = scal.get(Calendar.YEAR);
        sMonth = scal.get(Calendar.MONTH);
        sDay = scal.get(Calendar.DAY_OF_MONTH);

        updateSdate();
       
        StringBuilder sData_unita = new StringBuilder().append(sDay).append("/").append(sMonth + 1)
                           .append("/").append(sYear);
       
        sDate=sData_unita.toString();
               
        change_end_date.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(1);
               
            }
        });
       
        Calendar ecal = Calendar.getInstance();
        eYear = ecal.get(Calendar.YEAR);
        eMonth = ecal.get(Calendar.MONTH);
        eDay = ecal.get(Calendar.DAY_OF_MONTH);

        updateEdate();
       
        StringBuilder eData_unita = new StringBuilder().append(eDay).append("/").append(eMonth + 1)
                           .append("/").append(eYear);
       
        eDate=eData_unita.toString();
Il codice per il numberPicker
Codice (Java): [Seleziona]
protected void updateSdate() {
        change_start_date.setText(
            new StringBuilder()
                        .append(sDay).append("-")
                    .append(sMonth + 1).append("-")
                    .append(sYear).append(" "));
    }

    protected void updateEdate() {
        change_start_date.setText(
            new StringBuilder()
                        .append(eDay).append("-")
                    .append(eMonth + 1).append("-")
                    .append(eYear).append(" "));
    }
   
    protected Dialog onCreateDialog(int id) {
       
        switch(id){
        case 0: {return new DatePickerDialog(this,
                sDateSetListener,
                sYear, sMonth, sDay);}
        case 1: {return new DatePickerDialog(this,
                eDateSetListener,
                eYear, eMonth, eDay);}
        }
                return null;
}
   
    protected DatePickerDialog.OnDateSetListener sDateSetListener =
        new DatePickerDialog.OnDateSetListener() {
            public void onDateSet(DatePicker view, int year,
                                  int monthOfYear, int dayOfMonth) {
                sYear = year;
                sMonth = monthOfYear;
                sDay = dayOfMonth;
                updateSdate();
            }
    };
   
    protected DatePickerDialog.OnDateSetListener eDateSetListener =
            new DatePickerDialog.OnDateSetListener() {
                public void onDateSet(DatePicker view, int year,
                                      int monthOfYear, int dayOfMonth) {
                    sYear = year;
                    sMonth = monthOfYear;
                    sDay = dayOfMonth;
                    updateSdate();
                }
        };
Spero di esser stato chiaro e che qualcuno mi possa aiutare.
Grazie in anticipo.