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详解 的相关文章

  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 我想实现下面的布局,按钮应该在屏幕底部,当惰性列被填充时,按钮不应该出去

    顶部有惰性列 惰性列下方有输入电话号码布局并从电话簿布局添加联系人 我希望当未添加联系人时此布局位于顶部 当我添加大量联系人时输入电话号码并添加电话簿布局中的联系人会随着惰性列滚动并移出屏幕 我不让他们走出屏幕 当接触较多时 它们必须粘在底
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 在activity_main.xml中注释

    我是安卓新手 据我所知 XML 中的注释与 HTML 中的注释相同 使用 形式 我想在 Android 项目的 Activity main xml 配置文件中写一些注释 但它给了我错误 值得注意的是 我使用的是 Eclipse 但目前 我直
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • Crashlytics 出现 Android Studio 构建错误

    我正在尝试将 CrashLytics 与 Android Studio 和 gradle 一起使用 但出现一个令人困惑的错误 java lang NoSuchMethodError 我的 build gradle 是 buildscript
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 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等 如果在 后面使用 表示当修改完某个布局文件并保存后 系统会自