id的声明两种方式 @id 和@+id

原创 2012年03月26日 20:07:18
1

<Button
        android:id="@id/but"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

在values 中新建ids。xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="but">false</item>
    
</resources>


方式2:



参考:http://zhidao.baidu.com/question/298221263.html

              如果在@后面使用“+”,表示当修改完某个布局文件并保存后,系统会自动在R.java文件中生成相应的int类型变量。变量名就是“/”后面的值,例如,@+id/xyz会在R.java文件中生成int xyz = value,其中value是一个十六进制的数。如果xyz在R.java中已经存在同名的变量,就不再生成新的变量,而该组件会使用这个已存在的变量的值。
也就是说,如果使用@+id/name形式,当R.java中存在名为name变量时,则该组件会使用该变量的值作为标识。如果不存在该变量,则添加一个新的变量,并为该变量赋相应的值(不会重复)
          既然组件的id属性是一个资源id就可以,那么自然可以设置任何已经存在的资源id值,例如,@drawable/icon、@string/ok、@+string/you等。当然,也可以设置android系统中已存在的资源id,例如,楼主提出的@id/android:list,那么这个android是什么意思呢,实际上,这个android就是系统的R类(在R.java文件中)所在的package。我们可以在Java代码编辑区输入android.R.id.,就会列出相应的资源id,例如,也可以设置id属性值为@id/android:message。
<ListView android:id="@+id/android:message"
   android:layout_width="wrap_content"
      android:layout_height="wrap_content"/>
还有另外一种方法查看系统中定义的id,进入<android sdk安装目录>\platforms\android-1.5\data\res\values目录,找到ids.xml文件,打开后,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="id" name="price_edit">false</item>
<item type="id" name="amount_edit">false</item>
</resources>

若在ids.xml中定义了ID,则在layout中可如下定义@id/price_edit,否则@+id/price_edit





                    

相关文章推荐

Hibernate在oracle中ID增长的两种方式

Hibernate在oracle中ID增长的两种方式 根据hibernate的文档,有两种方式实现实体对象的主键自动增长。  第一种:设置ID的增长策略是sequence,同时指定sequenc...

Android 资源名获取资源ID的两种实现方式-附带例子说明

获取资源文件,res目录下的资源时,id报空指针!!!如何解决? 之前一直纠结的问题,如何获取资源的id?? 在android中,我们经常使用资源文件的id来代替这个资源,如 R.drawab...

Python实现的用于从布局文件的id生成成员变量声明和findViewById语句的Android开发小工具

Python做的一个Android开发的小工具

关于xml文件中id的声明顺序的小问题以及联想

作为一个android萌新,很是囫囵吞枣地看了看教程就直接开始了画界面,然后不出意外地遇到了作为新人感到最头疼的问题,R文件不见了。 在网上查到的问题和解决方法一般就是检查一下自己的xml文件是否...

每周学一点 egret(6):抽离Exml对象id声明

今天抽了一点小时间,写了一个抽离Exml文件的工具,采用As3正则一点点调试,在网上找了一个匹配表达式开始尝试。然后一步步抽出来。 至于匹配率如何?我想还可以继续深入挖潜吧,只不过是方便自己使用。偷...

Objective-C中 构造函数的声明以及id 和 instancetype 的区别

OC中,如何声明一个构造函数呢?以及在声明构造函数时,构造函数的返回类型可以写instancetype和id,那么这两个关键字到底有什么区别呢?声明构造函数时,用哪种方法更好呢??我们就来探讨一下。声...

php5 的 session 详解之二:有两种方法传递 一个会话 ID:

cookie URL 参数 会话模块支持这两种方法。cookie 更优化,但由于不总是可用,也提供替代的方法。第二种方法直接将会话 ID 嵌入到 URL 中间去。PHP 可以透明地转换连接。除非是...

使用udev方式挂载的asm查看对应的物理盘scsi_id

--RAC环境asm查看对应的物理盘,使用udev方式挂载的 # cat /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd*", BU...

Android 注解的方式绑定UI ID

注解的方式绑定UI的ID的原理还是通过反射来实现的,
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:id的声明两种方式 @id 和@+id
举报原因:
原因补充:

(最多只允许输入30个字)