关于R类引用和系统R类

昨天在拷一个工程给同学的时候,他的eclipse不知何故无法导入,没法子只能复制粘贴代码。复制粘贴好后,发现R类引用发生错误,导致src主体程序中多处报错,尝试重新建各种res下的xml文件都无果。最后没办法,大胆尝试去修改R文件,将原工程工程中的R文件的内容也复制粘贴到新工程中。

其实原本我也非常犹豫,还感觉这样做会不成功,因为我和他的开发环境、版本都不同,R文件又是工程文件自己产生的,官方建议都是不要修改,只是走投无路下的尝试,没想到就成功了,那些error全都消失。修改成功后然后去思考why it works?R类是android对工程项目中程序资源的一种索引,它对应的是本工程文件中res下的资源文件,和工程以外的东西无关,所以如果两个proj中res文件下的文件相同,它们的R文件也应该可以通用,因为R类是只跟本proj的res文件有关,而跟开发环境、本proj以外一切都无关。这也就是为什么拷贝原proj的R类能够使新复制的proj去掉那些索引引用错误的原因。

进一步在网上搜索R类的资料,发现在复制代码的时候后,R类引用出错的一个处理方法,是删除这个类,并等待系统重新生成。显然这个方法应用范围更广泛,应该是更好的解决方案。

在查的时候,我发现原来系统也自带R类。在android.jar包下可以看到R类的结构,系统R类封装和提供了比较完善和常用的资源可以供程序直接使用,如系统图标、字符串、布局、样式等等。一个例子,如引用Android系统的help图标,若在资源文件中引用,则代码如下:

@android:drawable/ic_menu_help

若在程序里,同样的资源可以这样表示:

android.R.drawable.ic_menu_help

Fin, se coucher et bonne nuit~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值