Android学习之 R类

1、在android开发中会用到各种资源,例如图片、values等。除了assets和res/raw资源被原装不动地打包进APK之外,其它的资源都会被编译为二进制的resources.arsc文件,并被赋予一个资源ID。android自动生成一个R类,专门用于映射管理二进制资源。
2、在 java 文件中引用资源时,直接对 R.java 文件中的内容进行调用,例如:R.id.button_1,表示调用 R 这个类下面的 id 这个内部类中的 button_1 属性。在 xml 文件中 @ 符号表示调用 R.java 文件中的资源,举个例子:@style/AppTheme 中的 @ 符号可以理解为 R这个类,而 style 表示 R 类中的 style 内部类,AppTheme 表示,style 内部类中的 AppTheme 属性。站在设计前台的角度,所有资源都是有具体路径,都是可视的。
3、生成activity时,引入布局文件动态生成窗体控件,所有的R.id都是临时生成的,在内存中的代码就是 public static final int tv=0x7f0800d1,通过R.id.tv读取0x7f0800d1然后定位控件,也就是说R.id只不过是一个内存编码,这跟文件资源是完全不同的,在不同布局文件中名字相同是没有关系的,但同一布局文件中不能有相同的名字,否则无法定位控件。R文件只是一个管理资源入口,包含许多不同的资源管理类,不同类的资源管理基本上没有关系。
4、R文件标红错误解决:每次修改项目设置后,系统都会自动重新生成app.iml,自动生成的app.iml会丢失R文件都引用路径,在app.iml文件中添加R文件路径即可。

你可能感兴趣的:(Android学习之 R类)