2017-07-09 5 views
0

Ich habe nur wenige Fragen, um mein Verständnis zu R.java Klasse zu festigen.Konzept der R.java Klasse

(1): Wird es zur Laufzeit oder zur Kompilierzeit generiert? Um es zu testen, habe ich einen neuen 'Button' mit einem Text erstellt, die 'ID' des 'Button' ist 'actMain_btnTest' und das Name-Attribut des Textes in 'strings.xml' ist 'btn_test'. Dann habe ich in der Java-Datei mit 'findViewById' auf 'Button' verwiesen und es war erreichbar. Daher würde ich sagen, dass die 'R.java' zur Kompilierzeit generiert werden kann. Aber dann navigierte ich zu "R.java", um sicherzustellen, dass "R.java" "actMain_btnTest" und "btn_test" hinzugefügt wurde, aber überraschenderweise waren sie nicht vorhanden !! Jetzt tauchte eine neue Frage auf, wie die 'ID' accessile war, während sie noch nicht zu 'R.java' hinzugefügt wurde ?!

(2): Was ist die Beziehung zwischen 'R-Klasse' und 'Android Resource Manager'? wie arbeiten sie zusammen? ist es nur für die Lokalisierung ?!

(3): Seit 'R-Klasse' enthält Unterklassen, die 'IDs' der Ressourcen der App enthalten, und jede 'ID' ist einem Wert zugeordnet. Beispiel:

public static final int request_identifiers=0x7f060019; 

Worauf bezieht sich "0x7f060019"? Ist es eine Adresse in der Erinnerung ?? !!

+0

Hilfreiche SO Erklärungen und Links unter: https://stackoverflow.com/questions/6804053/understand-the-r-class-in-android – BusinessPlanQuickBuilder

Antwort

0

Es ist eine automatisch generierte Datei von aapt (Android Asset Packaging Tool), die Ressourcen-IDs für alle Ressourcen von res/directory enthält.

Wenn Sie eine Komponente in der Datei activity_main.xml erstellen, wird die ID für die entsprechende Komponente automatisch in dieser Datei erstellt. Diese ID kann in der Aktivitätsquelldatei verwendet werden, um eine Aktion für die Komponente auszuführen.