CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 6 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 19 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

Alcune domande da Noob..

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Senior Droid L'avatar di Tuzz


    Registrato dal
    Sep 2009
    Località
    Bologna
    Messaggi
    535

    Ringraziamenti
    43
    Ringraziato 22 volte in 21 Posts
    Predefinito

    Alcune domande da Noob..

    Ciao a tutti, sono un programmatore C++/C# con esperienza di svariati anni.

    Da qualche giorno sto provando a vedere un pò il framework di Android compresi i vari tutorial...

    Sostanzialmente l'interfaccia é molto simile concettualmente allo XAML (quella per disegnare le interfacce in WPF). Mentre per la sintassi avrei un paio di domande che non sono riuscito a chiarire.. posso?

     
    1
    2
            mPickDate.setOnClickListener(new View.OnClickListener() {
    3
                public void onClick(View v) {
    4
                    showDialog(DATE_DIALOG_ID);
    5
                }
    6
            });
    7


    La callback dell'evento viene definita direttamente dentro all'evento stesso. É questo l'unico modo oppure é possibile richiamare una funzione fuori dall'evento stesso? Mi sarei aspettato qualcosa del tipo:

    3
     
    1
    2
    mPickDate.setOnClickListener = new CallBack(bla bla){};
    3


    poi fuori da tutto

    5
     
    1
    2
    public void onClick(View v) {
    3
                    showDialog(DATE_DIALOG_ID);
    4
                }
    5



    2) In questo esempio

    11
     
    1
    2
        private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
    3
            public void onDateSet(DatePicker view, int year, int monthOfYear,
    4
                    int dayOfMonth) {
    5
                mYear = year;
    6
                mMonth = monthOfYear;
    7
                mDay = dayOfMonth;
    8
                updateDisplay();
    9
            }
    10
        };
    11


    Usa un metodo statico per intercettare l'evento onDateSet. Facendo cosi ogni DatepickerDialog del programma é automaticamente sottoscritto e quindi bisogna verificare quale lo sta lanciando nel caso ne abbia più di uno?

    É possibile sottoscrivere solo un elemento e non tutti quelli dello stesso tipo?


    Grazie :-)
    Ultima modifica di Tuzz; 04-06-10 alle 13:44

  2.  
  3. #2
    Androidiano


    Registrato dal
    Apr 2010
    Messaggi
    126
    Smartphone
    Samsung Galaxy Nexus

    Ringraziamenti
    5
    Ringraziato 11 volte in 11 Posts
    Predefinito

    ciao

    per quanto riguarda la 1, l'argomento passato alla setOnClickListener è un oggetto. Puoi creare "al volo" l'oggetto come nell'esempio, oppure dichiarare ad esempio, che la tua classe implementa l'interfaccia View.OnClickListener(). A quel punto puoi implementare il metodo onClick() come un metodo qualsiasi.
    Un'alternativa è creare una classe privata che implementi View.OnClickListener()

    10
     
    1
    MyPrivateClass m = new MyPrivateClass();
    2
    mPickDate.setOnClickListener(m);
    3
    4
    ...
    5
    private class MyPrivateClass implements View.OnClickListener{
    6
      public void onClick(View v) {
    7
         showDialog(DATE_DIALOG_ID);
    8
    }
    9
    }
    10


    Io sceglierei la soluzione adottata nell'esempio da te postato. Non crei mircoclassi "inutili".. ma vedi te quella che ti convince d +

    Nel secondo problema, il metodo non è statico ma penso di nn aver capito bene la domanda.

  4. #3
    Senior Droid L'avatar di Tuzz


    Registrato dal
    Sep 2009
    Località
    Bologna
    Messaggi
    535

    Ringraziamenti
    43
    Ringraziato 22 volte in 21 Posts
    Predefinito

    Intanto grazie per la spiegazione, essendo abituato con C# mi parva strano che non ci fosse una sintassi tipo:



    5
     
    1
    this.cmbCarDealer.SelectedCarDealerChanged += new System.EventHandler<SelectedCarDealerChangedEventargs>(this.cmbCarDealer_SelectedCarDealerChanged);
    2
    3
    private void cmbCarDealer_SelectedCarDealerChanged(object sender, SelectedCarDealerChangedEventargs e)
    4
            {
    5
    }




    Però effettivamente é cosi

    ---------------------

    Per quanto riguarda la seconda domanda, il metodo statico a cui mi riferivo é questo:

    3
     
    1
    2
    private DatePickerDialog.OnDateSetListener 
    3


    ovvero il metodo statico di "DatePickerDialog".



    Grazie ancora per la disponibilità
    Ultima modifica di Tuzz; 04-06-10 alle 13:43

  5. #4
    Androidiano


    Registrato dal
    Apr 2010
    Messaggi
    126
    Smartphone
    Samsung Galaxy Nexus

    Ringraziamenti
    5
    Ringraziato 11 volte in 11 Posts
    Predefinito

    OnDateSetListener non è un metodo, è una classe interna statica
    La convenzione comunque è che le classi iniziano con la lettera maiuscola, i metodi con quella minuscola.

    Nested Classes (The Java™ Tutorials > Learning the Java Language > Classes and Objects)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy