Android中使用?和@引用资源的区别

<TextView style="?android:listSeparatorTextViewStyle"
          android:text="@string/string_title"/>

1、"?"

?使您可以引用样式属性而不是特定的硬编码资源。有关详细信息,请参见《 Android开发人员指南》中的“引用样式属性”。

当考虑包含相同自定义资源属性的多个主题时,这是最有意义的。

假设您有与电影相关的主题,例如MyThemeTransformers和MyThemeHobbit,并且都有一个名为movieIcon的属性。该movieIcon属性指向每个主题定义中的另一个@drawable资源,例如robot.png或hobbit.png。

您可以在主题生效的任何地方(例如在工具栏或对话框或任何类型的View布局中)引用“ ?attr / movieIcon ”,当您在主题之间切换时,它将自动指向正确的可绘制对象。

2、"@"

@引用的是之前定义好的资源,该资源已经存在于当前项目或者android的framework里。比如使用@引用strings.xml里面的文字作为button的text,该资源是明确指定的,不管app主题样式怎么变,button的text始终不变,这也是硬编码资源。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值