Android中 @id 与 @+id 区别

2023-11-17

      Android 中的组件需要用一个int 类型的值来表示,这个值也就是组件标签中的id 属性值。id 属性只能接受资源类型的值,也就是必须以 @ 开头的值,例如,@id/abc@+id/xyz等。
      如果在@后面使用+,表示当修改完某个布局文件并保存后,系统会自动在R.java文件中生成相应的 int类型变量。变量名就是 / 后面的值,例如,@+id/xyz会在 R.java 文件中生成int xyz = value,其中value是一个十六进制的数。如果 xyzR.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

<ListView
  android:id="@+id/android:message"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"/>

还有另外一种方法查看系统中定义的 id
进入

<?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

即是说当我们第一次定义一个控件的 id 时,我们需要使用 @+id/xxx,而当我们使用这个 id 时可以使用 @id/xx 的形式,如下可以看到 iv_userhead

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp">

        <ImageView
            android:id="@+id/iv_userhead"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentTop="true"
            android:focusable="false"
            android:src="@drawable/ic_chat_head"/>

        <TextView
            android:id="@+id/tv_chatcontent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:layout_centerVertical="true"
            android:layout_toEndOf="@id/iv_userhead"
            android:padding="10dp"
            android:background="@drawable/sh_chat_bg_msg_from"
            android:textSize="14sp"/>
    </RelativeLayout>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android中 @id 与 @+id 区别 的相关文章

  • Android 中多个蓝牙连接的自定义 UUID

    我有一个 Android 设备作为服务器连接到多个蓝牙 Android 客户端 我了解 UUID 的概念以及它的独特之处 我的问题是 我可以为连接到我的服务器的所有客户端使用相同的 UUID 吗 如果没有 我如何以编程方式为我的客户端生成
  • Cheesesquare:enterAlways 会产生错误的布局

    Adding enterAlways到 Cheesesquare 演示的滚动标志
  • 从响应中获取标头(Retrofit / OkHttp 客户端)

    我正在使用 Retrofit 与 OkHttp 客户端和 Jackson 进行 Json 序列化 并希望获取响应的标头 我知道我可以扩展 OkClient 并拦截它 但这发生在反序列化过程开始之前 我基本上需要的是获取标头以及反序列化的 J
  • 按下按钮时应用不同的样式

    有没有办法在按下按钮时将样式应用于按钮 如果我有一种风格样式 xml
  • Android Q:file.mkdirs() 返回 false

    我们有一个应用程序 使用外部存储来存储一些临时文件 图像 二进制数据 该代码已经运行了几年 直到最近才发生重大变化 在 Android Q 上它不起作用 File f new File Environment getExternalStor
  • 如何在 Linux 内核中定义并触发我自己的新软中断?

    我想在 Linux 内核中创建自己的软中断 这是正确的方法吗 In the init我想触发该模块的softirq我将添加一个调用 394 void open softirq int nr void action struct softir
  • Recyclerview 动态部分不使用任何第三个库

    我想将标头添加到 recyclerview 我正在尝试使用来实现它 Override public int getItemViewType int position depends on your problem if position 0
  • Bitmap.getPixels() 中的 IllegalArgumentException

    我想将数据从位图复制到int using getPixels 这是我当前的代码 int pixels new int myBitmap getHeight myBitmap getWidth myBitmap getPixels pixel
  • Android Eclipse 上的 Web 服务

    我是 android eclipse java 的新手 事实上这个论坛也是如此 有人遇到过这种情况吗 从用户那里获取输入并通过使用 android eclipse 中的 Web 服务来显示适当的结果 有可用的示例吗 非常感谢 我正在发布教程
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 我应该释放或重置 MediaPlayer 吗?

    我有自己的自定义适配器类 称为 WordAdapter 并且我正在使用媒体播放器 名为pronounce WordAdapter 类中的全局变量 我有不同的活动 其中每个列表项都有线性布局 名为linearLayout 我正在设置onCli
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • 您使用什么物理 Android 设备进行测试?

    有什么好的推荐用于测试目的的物理 Android 设备吗 我正在苹果阵营寻找像 iPod touch 这样的设备 可以帮助 iOS 开发人员测试他们的东西 我知道有 Nexus One 但那东西相当昂贵 而且我并不真正关心手机的东西 而是可
  • Android Studio 缓慢的增量构建

    我已经完成了许多步骤来完善我们的构建系统 those https stackoverflow com questions 16775197 building and running app via gradle and android st
  • 卡片视图 单击卡片移至新活动

    我是 Android 编程新手 正在研究卡片布局 我想知道如何使其可点击 android clickable true android foreground android attr selectableItemBackground 我的卡
  • 在命令行上卸载 Android SDK 的选定部分

    这与 卸载旧的 Android SDK 版本 https stackoverflow com questions 15182377 uninstall old android sdk versions 除非我想在无头 Linux CI 服务
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 通过系统应用程序以编程方式静默安装 apk(无需 root)

    我有带有 android sharedUserId android uid system UID 1000 的系统级应用程序 设备未root INSTALL PACKAGES 权限包含在清单中 我可以静默安装下载的 apk 吗 我已经发现这
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte

随机推荐

  • 数据结构与算法——第一章绪论

    数据结构与算法 绪论 数据结构的研究对象 数据结构的表示 DS的第一个重要部分 逻辑结构 DS第二个重要部分 数据的存储结构 计算机如何存储 结点及结点关系 数据结构的发展概况 抽象数据型 抽象数据型的定义 数据类型 数据结构和抽象数据型
  • 牛客网--专项训练--软件测试(待补充)

    1 集成测试分为渐增组装测试和 非渐增组装测试 渐增组装测试 是测完一个再加上一个一起测试 非渐增组装测试 是一个一个的测试 2 海伦公式求三角形面积 等价类测试用例中无效等价类意思就是无法构成三角形的 3 白盒测试是对代码内部的逻辑测试
  • Python异步请求:异步编程的常见问题

    Python异步请求 异步编程的常见问题 异步编程的常见问题 在异步编程过程中 可能会遇到一些常见的问题 了解这些问题并掌握解决方法对于开发高效的异步应用程序至关重要 异常处理 在异步编程中 异常处理变得更加关键 在同步编程中 异常通常可以
  • IDEA中设置注释模板的方法

    IDEA中设置注释模板主要分为两个部分 分别是创建java文件时类的注释和方法的注释 这里为大家详细介绍一下方法 按MyEclipse的风格设置 MyEclipse的请看 MyEclipse中设置注释模板的方法 大家可以根据自己的习惯生成自
  • [Monana] Windows/Linux/mac下Anaconda3 Python3配置Tensorflow最简明教程~(只用一步)

    Authored by MonanaHe Contact me via hemonan vip 163 com 0 写在前面的话 为什么我敢说这是最简明的教程 网上很多人用conda安装tf 而且是单独装一个tensorflow的环境 这样
  • 2023华为OD机试真题(java 100%通过)【最多获得的短信条数/动态规划】

    题目内容 某云短信厂商 为庆祝国庆 推出充值优惠活动 现在给出客户预算 和优惠售价序列 求最多可获得的短信总条数 输入描述 第一行客户预算M 其中 0 M 10 6 第二行给出售价表 P1 P2 Pn 其中 1 n 100 Pi为充值 i
  • 最全Android 开发和安全系列工具

    阿里聚安全出品 史上最全Android 开发和安全系列工具 作者 菜刀文 关注 2017 02 20 00 08 字数 4554 阅读 725 评论 1 喜欢 29 作者 阿里聚安全 地址 https zhuanlan zhihu com
  • flex布局最后一行列表左对齐的方法

    使用flex布局两端对齐 但是最后一行元素居中会很丑 所以可以让最后一行元素左对齐 方法如下 改之前 html div class list box div class item div gt div css list box displa
  • SIP 抓包后获取媒体内容备忘(解析RTP)

    SIP呼叫并抓包 从网上找免费的sip 软中端 两个转中端建立呼叫且抓包 详情可以参考 https blog csdn net liuxingrui4p article details 96709136 spm 1001 2014 3001
  • C++ 编译报错“jump to label”

    C 编译报错 jump to label 分析 解决方法 如何在Eclipse中添加编译选项 分析 void func int a 0 a goto label label int b 0 return 这样的代码是有问题的 因为C 编译规
  • Python计算机视觉编程(八)图像检索

    图像检索 BOW模型 基于BOW的图像检索 特征提取 视觉词典 TF IDF 常用参数 图像检索 具体实现流程 BOW模型 Bag of words models模型 词袋模型 词袋模型对于给定的两个文档 进行分割可以建构出一个有n个元素词
  • L2-040 哲哲打游戏 (25 分)(分析题目意思,读懂题)

    哲哲是一位硬核游戏玩家 最近一款名叫 达诺达诺 的新游戏刚刚上市 哲哲自然要快速攻略游戏 守护硬核游戏玩家的一切 为简化模型 我们不妨假设游戏有 N 个剧情点 通过游戏里不同的操作或选择可以从某个剧情点去往另外一个剧情点 此外 游戏还设置了
  • Ubuntu常用环境配置

    配置软件源 切换清华源 sudo sed i s http archive ubuntu com https mirrors tuna tsinghua edu cn g etc apt sources list sudo sed i s
  • react教程-井字棋案例扩展03

    使用两个循环来渲染出棋盘的格子 而不是在代码里写死 hardcode 这个关键点是在于循环 react的循环是和vue不一样的 veu中的循环是直接写在节点上 但是react的循环 是通过数组遍历的方法 先遍历出虚拟的Dom节点 然后通过r
  • Active Directory的基本认识

    参考文献 http edu yesky com edupxpt 379 2086379 shtml http en wikipedia org wiki Active Directory Active Directory 和我们熟悉的网络邻
  • 通讯编程002——使用Arduino ModbusTCP 控制照明

    本文介绍如何使用Arduino作为Modbus TCP从站 PC机为Modbus主站 安装ModScan用于主站调试 通过ModScan控制LED开关照明 相关软件可登录网信智汇 wangxinzhihui 下载 1 运行Arduino I
  • 一份关于jvm内存调优及原理的学习笔记

    JVM 一 虚拟机的基本结构 1 jvm整体架构 类加载子系统 负责从文件系统或者网络中加载class信息 存入方法区中 方法区 Perm 存放加载后的class信息 包括静态方法 jdk1 6以前包含了常量池 参数 XX PermSize
  • Android获取SHA1

    SHA1 怎么获取 不同签名文件的 SHA1 值不同 可以参考下面三种获取 SHA1 值的方式 1 通过 Android Studio 编译器获取 1 打开 Android Studio 的 Terminal 工具 2 输入命令 keyto
  • html从一个页面跳转至另一个html页面的子页面

    假设从1 html跳转至2 html的子页面 则 在1 html中添加点击事件 a href user customerManageNew class u btn add span class swf add span a 然后在后台con
  • Android中 @id 与 @+id 区别

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