/ / Implementazione di getResources () Android: java, android, api, getresource

Implementazione di getResources () Android: java, android, api, getresource

Ho appena iniziato ad apprendere la programmazione Android e ho avuto un dubbio sul metodo getResources (). Ho notato che quando creo un oggetto Risorse tutto quello che devo fare è:
Resources res = getResources();
Il primo dubbio è il seguente perché devo fare in questo modo e non devo usare la parola chiave java nuovo? Non dovrei fare qualcosa del genere:
Resources res = new Resources();
Il secondo dubbio è il seguente: nella parte superiore del mio file ho importato la classe Resources.
import android.content.res.Resources;
Ora leggo l'api Android e lo dicegetResources () è un metodo pubblico astratto, se è astratto quale classe lo implementa? come posso semplicemente chiamarlo digitando getResources () se non è dichiarato statico?

risposte:

3 per risposta № 1

La tua attività estende la classe android.app.Activity che a sua volta estende la classe android.content.Context (tre livelli sulla gerarchia delle classi). Classe Context dichiara il metodo astratto getResources () il che significa che la sottoclasse di attività eredita tale metodo e puoi chiamarlo dal tuo onCreate() metodo (per esempio).

Il metodo getResources() è dichiarato come astratto in classe Context ma una delle classi intermedie nella gerarchia di classi (android.view.ContextThemeWrapper) fornisce un'implementazione per il metodo.

Inoltre ciò significa che la creazione di Resources l'oggetto non è una tua responsabilità; invece è fatto dal framework.


1 per risposta № 2

getResources è in realtà un metodo a cui puoi accedere dal tuo contesto. Quindi puoi davvero pensare a questo come:

context.getResources()

La tua classe di attività è il tuo contesto in questo caso, motivo per cui puoi chiamarlo con la sintassi:

getResources()

http://developer.android.com/reference/android/content/Context.html#getResources%28%29

Da quei documenti:

Interfaccia alle informazioni globali su anambiente applicativo. Questo è una classe astratta la cui implementazione è fornita da Android sistema. Permette l'accesso a risorse specifiche dell'applicazione e classi, così come up-call per operazioni a livello di applicazione come attività di lancio, trasmissione e ricezione di intenti, ecc.