2017-07-09 115 views
0

我只有幾個問題才能鞏固我對R.java類的理解。R.java類的概念

(1):它是在運行時還是編譯時生成的? 爲了測試它,我用一個文本創建了一個新的'Button','Button'的'id'是'actMain_btnTest','strings.xml'中文本的name屬性是 'btn_test'。然後在java文件中,我使用'findViewById'引用'Button'並且它是可訪問的。因此,我會說'R.java' 可以在編譯時生成。但是,然後我導航到'R.java',以確保'actMain_btnTest'和'btn_test'被添加到'R.java',但令人驚訝的是,它們不存在! 現在,一個新的問題出現了,'id'是如何獲得的,而它還沒有添加到'R.java'?!

(2):'R class'和'Android Resource Manager'之間的關係是什麼?他們如何一起工作?僅僅是爲了本地化?!

(3)由於'R class'包含包含應用程序資源的'id'的子類,並且每個'id'都被賦值爲一個值。例如,

public static final int request_identifiers=0x7f060019; 

'0x7f060019'是指什麼?它是在內存中的地址??!

+0

有用的SO解釋和鏈接在: https://stackoverflow.com/questions/6804053/understand-the-r-class-in-android – BusinessPlanQuickBuilder

回答

0

這是由aapt(Android資產包裝工具)自動生成的文件,其中包含res /目錄的所有資源的資源ID。

如果您在activity_main.xml文件中創建了任何組件,則會在該文件中自動創建對應組件的ID。此ID可用於活動源文件以對組件執行任何操作。