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文件路径<sourceFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources/debug/processDebugResources/r" isTestSource="false" generated="true" />即可。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值