Ho appena scritto una risposta per qualcuno confuso da findViewById e ho capito che ho una lacuna nella mia comprensione. Questa domanda è solo per conoscenza e curiosità.In che modo findViewById inizializza una vista
Considerate questo:
button = (Button)findViewById(R.id.button);
findViewById
restituisce un'istanza di View
, che viene poi gettato alla classe di destinazione. Tutto bene finora.
Per impostare la vista, findViewById
costruisce un AttributeSet
dai parametri della dichiarazione XML associata che passa al costruttore di View
.
Quindi inoltrare l'istanza View
a Button
.
In che modo il AttributeSet
viene passato a turno al costruttore Button
?
[EDIT]
quindi ero confuso uno :). Il punto è che quando il layout è gonfiato, la gerarchia della vista contiene già un'istanza della classe discendente della vista. findViewById restituisce semplicemente un riferimento ad esso. Ovvio quando ci pensate - doh ..
+5 per la ricerca .... a causa della tua domanda ho ricercato e trovare le informazioni complete relative alla base c flusso .... grazie a @Leonidos – Pragnani