CERCA
PER MODELLO
FullScreen Chatbox! :)

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

Visualizzazione dei risultati da 1 a 5 su 5
Discussione:

Istruzioni abbreviate

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
    Baby Droid


    Registrato dal
    Oct 2016
    Messaggi
    6

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Istruzioni abbreviate

    Salve a tutti,
    la seguente istruzione

     
    1
    MenuInflater inflater = getMenuInflater();
    2
    inflater.inflate(R.menu.menu_quiz, menu);


    può essere abbreviata con:
    1
     
    1
    getMenuInflater().inflate(R.menu.menu_quiz, menu);


    Potete spiegarmi o fornirmi dei link a del materiali che spieghi le abbreviazioni in Java??

    1
     
    1
    MenuInflater inflater = getMenuInflater();


    Questa riga è relativa alla Reflection in Java??

  2.  
  3. #2
    Baby Droid L'avatar di fattazzo


    Registrato dal
    Nov 2013
    Località
    Baselga di Pinè (Trento)
    Messaggi
    19
    Smartphone
    Xiaomi Redmi Note 3

    Ringraziamenti
    0
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Il metodo
    1
     
    1
    getMenuInflater();


    restituisce una classe di tipo MenuInflater che come puoi vedere dal link, fra i vari metodi, possiede c'è anche "inflate(int menuRes, Menu menu)" quindi
    nel caso
    2
     
    1
    MenuInflater inflater = getMenuInflater();
    2
    inflater.inflate(R.menu.menu_quiz, menu);

    la riga 1 ottiene l'istanza della classe MenuInflater mentre la riga 2 invoca il metodo inflate sulla variabile inflater.

    Utilizzando invece la notazione
    1
     
    1
    getMenuInflater().inflate(R.menu.menu_quiz, menu);

    si ottiene lo stesso risultato tranne per il fatto che non si passa per la variabile inflater

  4. Il seguente Utente ha ringraziato fattazzo per il post:

    roobb (31-05-17)

  5. #3
    Baby Droid


    Registrato dal
    Oct 2016
    Messaggi
    6

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Un dubbio.
    Te scrivi: "la riga 1 ottiene l'istanza della classe MenuInflater"
    MenuInflater inflater = getMenuInflater();

    Ma per creare un'istanza non si deve scrivere:
    Nome_Classe Nome_Oggetto = new Nome_Classe();??

    Perchè la seconda parte è diversa??

  6. #4
    Baby Droid L'avatar di fattazzo


    Registrato dal
    Nov 2013
    Località
    Baselga di Pinè (Trento)
    Messaggi
    19
    Smartphone
    Xiaomi Redmi Note 3

    Ringraziamenti
    0
    Ringraziato 6 volte in 6 Posts
    Predefinito

    getMenuInflater(); è la chiamata ad un metodo.
    Ti faccio un esempio per capire meglio:

    Ho una classe chiamata ClasseA definita in quato modo:

    codice:
    public class ClasseA {
    
        public MenuInflater getMenuInflater() {
            return new MenuInflater();
        }
    
         public void metodoB() {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.menu_quiz, menu);
        }
    
        public void metodoC() {
            MenuInflater inflater = new MenuInflater();
            inflater.inflate(R.menu.menu_quiz, menu);
        }
    }
    Come puoi notare la classe A nel suo metodoB chiama il metodo getMenuInflater() che a sua volta instanzia e restituisce una istanza di MenuInflater.
    Il metodo C invece instanzia direttamente il MenuInflater.

    In questo esempio entrambi i metodi fanno esattmente la stessa cosa ma in 2 maniere diverse. Spero che questo riesca a farti un po di chiarezza riguardo la tua domanda.

  7. #5
    Baby Droid


    Registrato dal
    Oct 2016
    Messaggi
    6

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Sì è chiaro. E' solo che è la prima volta che lo vedo scritto un metodo e un'istanziazione in quel modo.
    Quindi MenuInflater è un metedo e getMenuInflater() e un altro metodo che istanzia direttamente MenuInflater. Ok.

    Mi puoi indicare qualche link al materiale per approfondire questo??

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