Android ID详解

2023-11-09

Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值。id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc、@+id/xyz等。
如果在@后面使用“+”,表示当修改完某个布局文件并保存后,系统会自动在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。

[url]http://tiantian0521.blog.163.com/blog/static/417208832010107112732363/[/url]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android ID详解 的相关文章

  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发
  • 使用 Flyway 和 Hibernate 的 hbm2ddl 在应用程序的生命周期中管理数据库模式

    我正在开发 Spring Hibernate MySql 应用程序 该应用程序尚未投入生产 我目前使用 Hibernatehbm2ddl该功能对于管理域上的更改非常方便 我也打算用Flyway用于数据库迁移 在未来的某个时候 该应用程序将首
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • 使用 Espresso 检查 EditText 的字体大小、高度和宽度

    如何使用 Espresso 检查 EditText 的字体大小 高度和宽度 目前要分割我使用的文本 onView withId R id editText1 perform clearText typeText Amr 并阅读文本 onVi
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons
  • 我可以在 XSLT 中创建模板吗?

    我想使用 XSLT 从 XML 创建 ASP NET 用户控件 目前我真的把结果一点一点地拼凑起来
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • 为什么Android的ImageReader类这么慢?

    我尝试了适用于 Android 3 4 1 的全新 OpenCVJavaCamera2View但它太慢了 仅显示相机视图约 15 fps 当我尝试较旧的JavaCameraView相反 它给了我很好的结果 30fps 这是我相机的极限 我想
  • 在 Android 中,如何将字符串从 Activity 传递到 Service?

    任何人都可以告诉如何将字符串或整数从活动传递到服务 我试图传递一个整数 setpossition 4 但它不需要 启动时总是需要 0 Service 我不知道为什么我不能通过使用 Service 实例从 Activity 进行操作 publ

随机推荐

  • WPF 多路径动画描绘轨迹生成几何图形动画

    按照描述轨迹做出几何图像 参照此类方式可制作多种动态数学几何图形 代码可以优化 如有错误自行修正 前台
  • homebrew安装报错:curl: Failed to connect to raw.githubusercontent.com port 443 after xxx ms解决办法

    问题描述 国内安装homebrew 默认会报错 curl Failed to connect to raw githubusercontent com port 443 after 75008 ms Operation 解决方法 网上说的一
  • 串口与树莓派通讯:实现硬件连接与数据交互

    树莓派是一款功能强大的单板计算机 它提供了多种接口和通信方式 其中串口通信是一种常用的方式 串口通信可以用于连接树莓派与外部硬件设备 实现数据的收发和控制 本文将介绍如何在树莓派上配置串口 并通过串口实现与外部设备的通讯 1 串口基础知识
  • 蓝桥杯单片机串口-点亮数码管

    串口传输数据的一种简单利用 其中涉及了数码管 选择器等常规外设 通过串口等配置 用电脑通过串口 向板子发送16进制的数据 在通过简单的计算把所要传输的数据显示出来 通过这个例程还可以和更多的外设相连接 例如通过串口设置一个参考值 与AD D
  • NodeJS分别实现token、cookie登录注册鉴权(KOA2)

    源码 https github com NaCl 131 node study git 包 npm install koa npm i nodemon D 保存自动更新 npm i koa router 路由 npm i koa body
  • 设计模式07 之Bridge

    设计模式07 之Bridge 1 单一职责 模式 在软件组件的设计中 如果责任划分的不清晰 使用继承得到的结果往往是随着需求的变化 子类急剧膨胀 同时充斥着重复代码 这时候的关键是划清责任 典型模式 Decorator 装饰模式 Bridg
  • 关于Keil中“ Error: L6200E: Symbol xxx multiply defined ”的报错解决办法

    在写HC硬件I2C驱动OLED过程中发现了这样一个报错 报错信息显示说 有 F6X8 F8X16 Hzk Title 这几个变量 数组 函数 有重复声明 以下提供两种可能的解决方法 程序中确实存在了相同名字的变量 函数 或数组 删除或者更改
  • 微信小程序网络请求报错:request:fail url not in domain list

    报错信息 request fail url not in domain list 根据提示 合法域名校验出错 然后查看相应文档 微信小程序官方要求每个微信小程序需要事先设置一个通讯域名 小程序只可以跟指定的域名与进行网络通信 所以我们需要在
  • mybatis的SqlMapConfig.xml文件无法下载dtd约束问题

    问题如下 解决方案 打开setting 找DTDS 将如下地址加入 http mybatis org dtd mybatis 3 config dtd 完美解决
  • FormData使用方法详解

    https www jianshu com p e984c3619019 FormData的主要用途有两个 1 将form表单元素的name与value进行组合 实现表单数据的序列化 从而减少表单元素的拼接 提高工作效率 2 异步上传文件
  • NUC980开源项目23-终端显示文件路径

    上面是我的微信和QQ群 欢迎新朋友的加入 项目码云地址 国内下载速度快 https gitee com jun626 nuc980 open source project 项目github地址 https github com Jun117
  • 搭建Hexo博客-第4章-绑定自定义域名

    搭建Hexo博客 第4章 绑定自定义域名 搭建Hexo博客 第4章 绑定自定义域名 搭建Hexo博客 第4章 绑定自定义域名 在这一篇文章中 我将会介绍如何给博客绑定你自己的域名 其实绑定域名本应该很简单的 但我当初在这上走了不少弯路 所以
  • 【数据结构--链表】链表中倒数第k个结点

    题目描述 实现思路 1 先遍历链表 算出链表总长度 然后再计算出顺数第几个是对应节点 返回指向该节点的指针即可 2 快慢指针法 fast slow 首先让fast先走k步 然后fast slow同时走 fast走到末尾时 slow走到倒数第
  • Unity中读取Json文件:基于Assets/Resources文件夹

    我好生气 Python JS里面一两行代码能够搞定的Json读取 在Unity中使用C 读取Json文件超多坑 爬出来一个又来一个 主要是JsonUtility FromJson太不给力了 最好的方式是 使用 https github co
  • mysql有to char函数吗_mysql 类似to_char() to_date()函数

    mysql日期和字符相互转换方法 date format date Y m d gt oracle中的to char str to date date Y m d gt oracle中的to date Y 代表4位的年份 y 代表2为的年份
  • bootstrap-table插件数据加载方式

    bootstrap table插件数据加载方式 data url 直接使用data url在table标签中定义 使用load方法加载数据 finishingTask bootstrapTable load data data为json数组
  • 弹出式菜单(下拉菜单)实现——PopupMenu -

    PopupMenu代表弹出式菜单 它会在指定组件上弹出PopupMenu 默认情况下 PopupMenu会显示在该组件的下方或上方 PopupMenu可增加多个菜单项 并可为菜单项增加子菜单 使用PopupMenu创建菜单的步骤非常简单 只
  • 禁用非必需插件,让 IDEA 飞起

    文章首发于个人博客 欢迎访问关注 https www lin2j tech IDEA 为我们提供了众多的插件 但是这些插件并不都是必须的 如果电脑的性能不够强 反而会带来一些不必要的资源消耗 因此这里整理了一些不常用的插件 可以通过禁用它们
  • 在 msys2 中安装软件 vim git gcc等

    下载安装文件 https github com msys2 msys2 installer releases download 2021 11 30 msys2 x86 64 20211130 exe 主页 MSYS2 更新msys2的软件
  • Android ID详解

    Android中的组件需要用一个int类型的值来表示 这个值也就是组件标签中的id属性值 id属性只能接受资源类型的值 也就是必须以 开头的值 例如 id abc id xyz等 如果在 后面使用 表示当修改完某个布局文件并保存后 系统会自