我只有几个问题可以巩固我对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'包含包含App资源的'id'的子类,并且每个'id'都被赋值给一个值。例如,
public static final int request_identifiers=0x7f060019;
'0x7f060019'是指什么?它是记忆中的地址?? !!
答案 0 :(得分:0)
这是aapt(Android资产包装工具)自动生成的文件,其中包含res /目录的所有资源的资源ID。
如果在activity_main.xml文件中创建任何组件,则会在此文件中自动创建相应组件的ID。可以在活动源文件中使用此ID对组件执行任何操作。