Android中的组件需要用一个int类型的值来表示,这个值就是组件标签中的id属性值。

id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc、@+id/xyz等。

如果在@后面使用“+”,表示当修改完某个布局文件并保存后,系统会自动在R.java文件中生成相应的int类型变量。变量名就是“/”后面的值,例如,@+id/xyz会在R.java文件中生成int xyz = value,其中value是一个十六进制的数。如果xyz在R.java中已经存在同名的变量,就不再生成新的变量,而该组件会使用这个已存在的变量的值。

既然组件的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。

还有另外一种方法查看系统中定义的id,进入sdk/platforms/android-16/data/res/values目录,ids.xml文件;

<?xml version="1.0" encoding="utf-8"?>
<!--
**
** Copyright 2007, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
**     http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<resources><item type="id" name="background" /><item type="id" name="checkbox" /><item type="id" name="content" /><item type="id" name="empty" /><item type="id" name="hint" /><item type="id" name="icon" /><item type="id" name="icon1" /><item type="id" name="icon2" /><item type="id" name="input" /><item type="id" name="left_icon" /><item type="id" name="list" /><item type="id" name="menu" /><item type="id" name="message" /><item type="id" name="primary" /><item type="id" name="progress" /><item type="id" name="right_icon" /><item type="id" name="summary" /><item type="id" name="selectedIcon" /><item type="id" name="tabcontent" /><item type="id" name="tabhost" /><item type="id" name="tabs" /><item type="id" name="text1" /><item type="id" name="text2" /><item type="id" name="title" /><item type="id" name="title_container" /><item type="id" name="toggle" /><item type="id" name="secondaryProgress" /><item type="id" name="lock_screen" /><item type="id" name="edit" /><item type="id" name="widget_frame" /><item type="id" name="button1" /><item type="id" name="button2" /><item type="id" name="button3" /><item type="id" name="extractArea" /><item type="id" name="candidatesArea" /><item type="id" name="inputArea" /><item type="id" name="inputExtractEditText" /><item type="id" name="selectAll" /><item type="id" name="cut" /><item type="id" name="copy" /><item type="id" name="paste" /><item type="id" name="copyUrl" /><item type="id" name="selectTextMode" /><item type="id" name="switchInputMethod" /><item type="id" name="keyboardView" /><item type="id" name="closeButton" /><item type="id" name="startSelectingText" /><item type="id" name="stopSelectingText" /><item type="id" name="addToDictionary" /><item type="id" name="accountPreferences" /><item type="id" name="smallIcon" /><item type="id" name="custom" /><item type="id" name="home" /><item type="id" name="fillInIntent" /><item type="id" name="rowTypeId" /><item type="id" name="up" /><item type="id" name="action_menu_divider" /><item type="id" name="icon_menu_presenter" /><item type="id" name="list_menu_presenter" /><item type="id" name="action_menu_presenter" /><item type="id" name="overflow_menu_presenter" /><item type="id" name="popup_submenu_presenter" />
</resources>

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

简单来讲:

@+id 新增一个资源id
@id和android:id,引用现有的资源id

原文地址点击打开链接

Android@id和@+id区别相关推荐

  1. Android @id和@+id 以及 @android:id 的区别

    昨天突然有新来的同事问我这个@id 和@+id 的区别 ,为什么 我们的项目都是@id 自己新增的ui 使用的@+id 这里说下我的简单的回复项目是维护的之前的是为了统一管理使用了@id  方便修改 ...

  2. Android @id和@+id区别

    Android中的组件需要用一个int类型的id属性值来表示.id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等.如果在@后面使用"+" ...

  3. android @id和@+id的区别

    今天,简单讲讲android里关于@id和@+id的区别. 之前,自己在布局里无论什么情况都使用@+id,可是后来发现有些代码用的是@id,自己不知道这两者之间有什么区别.于是就在网上查找资料,最终是 ...

  4. 软件android_id,Android中@id和@+id及@android:id的区别介绍

    前言 昨天突然有新来的同事问我这个@id 和@+id 的区别 ,为什么 我们的项目都是@id 自己新增的ui 使用的@+id 这里说下我的简单的回复项目是维护的之前的是为了统一管理使用了@id  方便 ...

  5. android 组件的id,Android@id和@+id的区别 - 泡在网上的日子

    Android中的组件需要用一个int类型的值来表示,这个值就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例�[email protected]/abc.@+id ...

  6. Android 不同View ID相同

    转自:http://blog.csdn.net/program035/article/details/6905045 今天在写一段代码是,两个Activity的Button设置了相同的ID,竟然没有报 ...

  7. html:(27):类和ID选择器的区别和子选择器

    类和ID选择器的区别 学习了类选择器和ID选择器,我们会发现他们之间有很多的相似处,是不是两者可以通用呢?我们不要着急先来总结一下他们的相同点和不同点: 相同点:可以应用于任何元素 不同点: 1.ID ...

  8. Android 获取设备ID,手机厂商,运营商,联网方式,获取系统语言,获取时区

    权限 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 安卓6.0需动态获取 ...

  9. android 指定资源id,Android 通过名称获取资源ID

    当我们获取网络数据的时候,解析之后往往都是一个字符串,而不是资源id,所有我们没有办法直接使用,只能通过名称来获取到资源id, package com.example.administrator.de ...

最新文章

  1. neo4j应用场景举例超过论文索引 公司投资风险 图书引用等场景的举例
  2. JAVA8 十大新特性
  3. 《Effective STL》学习笔记(第四部分)
  4. 你根本想象不到,学霸到底经历过什么
  5. 【R】语言第五课----画图
  6. php下的jsonp使用实例
  7. oracle 字段带数字,Oracle字符串中包含数字、特殊符号的排序
  8. Python使用Hprose
  9. NAACL 2022 | TAMT:通过下游任务无关掩码训练搜索可迁移的BERT子网络
  10. 【AGC】年龄分级问卷全攻略
  11. 用HTML语言编写一个课程表,html做课程表
  12. 联想计算机连接不上蓝牙耳机,thinkpad如何连接蓝牙耳机_thinkpad连接蓝牙耳机的步骤...
  13. Outlook邮件服务器eas,配置Outlook使用Outlook.com和Hotmail的两步验证
  14. UPC2022/3/18 晚训练赛补题
  15. 阶段1 - 03. 常用API第一部分 - 04. ArrayList集合
  16. python剔除数字 青少年编程电子学会python编程等级考试二级真题解析2020年12月
  17. 计算机cat的应用,计算机辅助系统
  18. 【数据库】Navicat编写MySQL自定义函数详解
  19. 倒计时1天! | 明日9点,这场精彩的Web3盛宴不容错过
  20. 开心网kaixin001.com外挂免费下载

热门文章

  1. 基于C++实现简单函数绘图语言的解释器
  2. mysql建立复合索引的一些原则
  3. 【gradle】gradle配置全局仓库
  4. java计算机毕业设计旅游信息分享网站源码+mysql数据库+系统+lw文档+部署
  5. 使用掘金获取当前正在交易的合约并可视化价格和持仓量
  6. 支付宝之查看商户id
  7. java 写文件日志文件_Java如何将日志写入文件?
  8. Echarts配置项-4
  9. CGrendering | 法国橡树庄园建筑可视化表现
  10. Flowable入门系列文章100 - 暂停流程定义