Android学习笔记之浅谈@id与@+id之间的区别

Android XML 布局基础(二)ID 用法(1) 文章所有资料全部已经打包整理好,另外小编手头上整理了大量Android架构师全套学习资料,Android核心高级技术PDF文档+全套高级学习资料+视频+2021 BAT 大厂面试真题解析资料展示:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!** 阅读详情

                            Android学习笔记之浅谈@id与@+id之间的区别

      作为一个自学Android编程的小白,在学习过程中自然会遇见各种各样的问题。随着学习的深入,就会发现以前疑惑很久的很多问题实在是简单的令人哑然失笑。但这就是最真实的学习过程,至少是我自己最真实的学习过程。所以,在这里我把学习中遇见的问题和后来的幡然醒悟写在博客里,一来是为了给自己当笔记,二来也希望和大家分享,有什么错误或者不足之处能被大家指出来就再好不过啦。


  无论是@id还是@+id在Android的编程中都是太太太常见啦,他们之间的仅仅相差一个“+”号,但是意义就大不一样了。先简单的介绍各自的用法。

@id的用法:

  @id在XLM中出现时,大多表示一种”相对“的意思,后面跟的是已经有”名字“,也就是已经被定义过的量,如下:

<Button
android:id="@+id/button3"   //定义了一个Button取名为button3 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/the_button3" /> //引入string文件中的the_button3(the_button3在string文件中已经被定义过啦
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/button3"    //让button1处于button3 的above
android:layout_toLeftOf="@id/button3" <span style="font-family: Arial, Helvetica, sans-serif;">//让button1处于button3 的toLeftOf</span>
android:text="@string/the_button1" />  <span style="font-family: Arial, Helvetica, sans-serif;">//引入string文件中的the_button1(the_button1在string文件中                                                                                                     //已经被定义过啦


    加上这个例子就显得很清楚啦。

@+id的用法:

  @+id在XLM中出现时,是定义控件。还是这个例子:

<Button
android:id="@+id/button3"   //定义了一个Button取名为button3 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/the_button3" /> //引入string文件中的the_button3(the_button3在string文件中已经被                                          //定义过啦
<Button
android:id="@+id/button1"  //定义了一个Button控件取名为button1
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/button3"    //让button1处于button3的above
android:layout_toLeftOf="@id/button3" //让button1处于button3的toLeftOf
android:text="@string/the_button1" />  
<Button                                  //添加一个Button控件,没有id也是可以的。
android:layout_width="wrap_content"
android:layout_height="wrao_content" />
//在逻辑代码中
button=(Button)findViewById(R.id.button3);   //在逻辑代码中“找到”button3

    代码很简单,只不过是多加了一个Button控件,并在最后的逻辑代码中“找到”了button3。

    需要注意的是,最后一个Button控件并没有id。这就出现一个问题,虽然程序不报错,也可以运行,甚至在相应的界面上也确确实实有一个button控件。但是,如果我们想对这个没有名字(id)的button进行操作,该怎么做呢?我们会发现根本无法对其进行像事件监听这种很基础的操作,更别提其他操作啦。

  也就是说,一个控件可以没有名字(id),但是这样一来很多操作就无法进行;要想对其进行操作,就必须给它一个名字,也就是@+id。

 总结: 

     现在可以总结一下啦,@id就相当于叫别人的名字,而@+id就相当于给自己起一个名字,让别人能辨别自己。


   坦白的说,我自己就是一个纯小白,如果有什么错误,还请大家多多指教和包容。

vos如何对接okcc(保姆级教程) 1.添加账户 点击 系统->账户管理 [图片] 2.创建费率 系统->费率管理 点击添加 阅读详情

相关推荐

SAP PP工艺路线Routing保姆级配置指南:从CA01创建到替代/并行顺序实战

本文详细解析SAP PP模块中工艺路线(Routing)的配置与应用,从基础创建(CA01)到高级功能如替代顺序和并行顺序的实战操作。通过真实案例演示,帮助用户掌握SAP PP工艺路线的精细化管理,提升生产流程效率。

weixin_30898555的博客 389

Android @+id与@id的区别

Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值。id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc、@+id/xyz等。如果在@后面使用“+”,表示当修改完某个布局文件并保存后,系统会自动在R.java文件中生成相应的int类型变量。变量名就是“/”后面的值,例如,@+id/xyz会在R.java文件...

weixin_34381687的博客 204

NLM去噪算法:原理、优化与医学图像处理实战

本文深入解析NLM去噪算法的核心原理及其在医学图像处理中的优化应用。通过全局自相似性计算,NLM算法有效抑制噪声并保留细节,特别适用于超声图像斑点噪声处理。文章还介绍了积分图像和傅里叶变换等优化技巧,显著提升计算效率,并分享医学影像项目中的实用调参经验。

weixin_29051149的博客 348

【学习随记】 btn2

<template> <div class="Btn"> <!-- 按钮 --> <ul id="btnWrap" class="btnWrap" ref="btnClick"> <li v-for="(item, index) in btnList" ...

weixin_46008251的博客 441

无感FOC之高频注入法——永磁同步电机控制

1.摘要电机运行在低速或零速时,磁链产生的反电动势很微弱,可用信号的信噪比太低,因而难以从反电动势中提取转子的位置和速度信息。因而在电机处于低速或零速时,需要借助电机的凸极特性来获取转子的位置信息。内置式永磁同步电机或磁密较大的表贴式永磁同步电机具有这种凸极特性,可借助高频电压注入法获取转子位置。2.凸极特性凸极电机内部的气隙是不均匀的,d轴和q轴的有效气隙是不同的,通俗来说在凸极电机里,q轴电感往往大于d轴电感,而在大部分表贴式永磁同步电机,气隙分布相对均匀,q轴电感近似于d轴电感。凸极率常用q轴电感和d

qq_2545470942的博客 2万+

CVPR 2027 投稿规划:基于近3年录用率与截稿周期的5步时间管理法

本文为计算机视觉研究者提供CVPR 2027投稿的完整规划指南,基于近三年录用率与截稿周期数据,提出五步时间管理法。涵盖选题策略、实验设计、论文写作、同行评审到最终提交的全流程优化,特别针对CVPR日益激烈的竞争环境(2024年投稿量达11532篇,录取率仅23.6%)提供实用解决方案,帮助研究者提升投稿成功率。

weixin_34079177的博客 1160

Spring Boot 中的 @Id 注解是什么,原理,如何使用

在 Spring Boot 中,@Id 注解是一个非常重要的注解,用于标识实体类中的主键字段。使用 @Id 注解可以帮助我们方便地进行持久化、查询、更新等操作。同时,@Id 注解还可以与其他注解结合使用,例如 @GeneratedValue、@Column 等,用于控制主键生成策略和数据库字段的映射关系。希望本文对您有所帮助,欢迎留言交流。

u013749113的博客 4015

GNN(图神经网络)的 MATLAB 仿真

图神经网络(Graph Neural Network, GNN)是一种用于处理图结构数据的深度学习模型。GNN 通过聚合节点及其邻居的信息,能够有效捕捉图结构中的复杂关系,广泛应用于社交网络分析、推荐系统、化学分子分析等领域。GNN 通过消息传递机制聚合节点及其邻居的信息,能够有效处理图结构数据。MATLAB 仿真展示了 GNN 的基本流程和节点分类性能,适用于社交网络分析、推荐系统、化学分子分析和知识图谱等多种应用场景。

走向CTO的路上... 837

android @id和@+id的区别

其实@+id就是在R.java文件里新增一个id名称,如果之前已经存在相同的id名称,那么会覆盖之前的名称。而@id则是直接引用R.java文件的存在的id资源,如果不存在,会编译报错。

m0_60428941的博客 833

实现边缘实时动物检测:YOLOv5模型优化与树莓派4B部署全攻略

本文介绍了基于高性能计算机训练YOLOv5目标检测模型,并部署到树莓派4B实现实时动物检测的全流程。主要内容包括:1)在高性能计算机上通过Anaconda创建虚拟环境,安装YOLOv5项目并进行模型训练;2)将训练好的best.pt模型迁移到树莓派,配置轻量级Miniconda环境;3)连接树莓派摄像头,运行实时检测程序。该系统兼顾了训练效率和边缘设备部署的实用性,可广泛应用于智慧农业、生态监测等场景。文中详细说明了数据准备、环境配置和部署步骤,为开发轻量级目标检测系统提供了完整参考方案。

m0_64661770的博客 201

FPGA经验谈系列文章——3、逻辑级数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Xilinx FPGA开发tips系列——前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的

gzy0506的博客 1万+

@Id的理解

minihuabei的博客 1297

流量PID控制(开度前馈量计算+辅助PID)

PLC通过伯努利方程近似计算水箱流量(FC)-优快云博客文章浏览阅读1.6k次。本文介绍了如何使用PLC通过伯努利方程近似计算水箱中的液体流量,主要涉及流量计算、模型验证、梯形图编程及STL代码实现。适合自动化领域的学习者参考。单容双容水箱建模(simulink仿真+PLC代码)_水箱系统的建模方法-优快云博客文章浏览阅读2k次。该博客介绍了如何使用伯努利方程建立单容和双容水箱模型,详细阐述了从理论建模到PLC编程的实现过程。

RXXW_Dor的博客 848

Android XML 布局基础(二)ID 用法

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,:表示这是一个新的资源名称,必须创建该名称并将其添加到资源 (,由于篇幅有限,这里以图片的形式给大家展示一部分。名称,如果存在相同的名称会覆盖之前的名称。字符串的其余部分,并将其标识为。资源,如果不存在,则会编译报错。时,不需要加号,但必须添加。

2401_84123294的博客 800

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android学习笔记(二) 之 参考网易做的健康计算器

bak下载地址详见: http://www.anzhi.com/intro.php?softid=296367&auth=1         首先创建一个Android Project 在Build target时候我选择的是Android2.2 然后进入res/values目录下,创建strings.xml 内容如下: 关爱健康:密切关注您无形的财富

小崔的博客 2281

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android学习笔记

1.

努力装文艺的213青年 711

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

安卓学习笔记2——电话拨号器

安卓学习笔记2——电话拨号器一、知识复习:1、安卓系统构成2、jvm与dvm区别3、ART模式(Android Runtime)4、安卓sdk目录5、布局与控件二、电话拨号器1、code2、遇到的问题或知识点**(1)拨打电话的权限问题:拨打时程序直接挂掉****(2)按键监听的四种方法****(3)Toast****(4)Intent意图** 一、知识复习: 1、安卓系统构成 2、jvm与dv...

qq_34782535的博客 574

java xml界面布局_Android(java)学习笔记16:布局文件.XML部分语法解析

1."@+id" 与"@id"区别@+id:表示新增一个id,所以一般用在定义一个控件的id的时候。比如,android:id="@+id/textView1",表示新增一个叫做textView1的id,并且设置当前这个控件的id叫做textView1。@id:表示引用一个id,一般用来指定某一个控件。比如,当放置一个B控件位于A控件的左边的时候,可以使用android:layout_toLeft...

weixin_42365251的博客 612

android studio复选按钮样式_Android Studio 学习笔记(三):简单控件及实例

本文针对常用控件(Textview、Button、EditText、RadioButton、CheckBox、ImageView)进行简单说明控件、组件、插件概念区分说到控件,就不得不区分一些概念。控件(Control):编程中用到的部件组件(Component):软件的组成部分插件(plugin): 应用程序中已经预留接口的组件下面举些例子Android的系统控件:TextviewImageVi...

weixin_34521244的博客 609

android studio textview光标,Android Studio 学习笔记(三):简单控件及实例

本文针对常用控件(Textview、Button、EditText、RadioButton、CheckBox、ImageView)进行简单说明控件、组件、插件概念区分说到控件,就不得不区分一些概念。控件(Control):编程中用到的部件组件(Component):软件的组成部分插件(plugin): 应用程序中已经预留接口的组件下面举些例子Android的系统控件:TextviewImageVi...

weixin_32102305的博客 1101

Android开发学习笔记(六)Android应用界面编程 Button/ImageButton学习

ImageButton继承自ImageView,Button继承自View。 相比ImageButton,Button具有更强大的功能。 ImageButton仅仅可以指定一个图片(也可是xml),没有文字,而Button图片文字都可以指定。 本测试使用了四个按钮,分别是普通按钮btn1;有文字有背景图(按下时候有变换效果)的按钮btn2;普通图片按钮btn3;有变换效果的图

GinSmile的博客 1491

Android学习笔记(二)

1.android:gravity="center_horizontal"(这个是线性布局中的标签属性)    android:layout_centerHorizontal="true"(这个是相对布局中的标签属性) 2.在LinearLayout中 android:layout_marginBottom 属性不起作用,只有  android:layout_marginTop才起作用,

1006346386@qq.com 765

Android学习笔记之ToggleButton

ToggleButton使用与自定义ToggleButton

a15804633046的博客 619

android学习笔记第一章,六大布局

LinearLayout(线性布局) 线性布局学习流程图如下: RelativeLayout(相对布局) 父容器定位属性示意图 根据兄弟组件定位 图中的组件1,2就是兄弟组件了,而组件3与组件1或组件2并不是兄弟组件,所以组件3不能通过 组件1或2来进行定位,比如layout_toleftof = "组件1"这样是会报错的!切记! 关于这个兄弟组件定位的最经典例子就是"梅花布局"了,下面代码实现下: <?xml version="1.0" encoding="utf-8"?> &l

qq_49532777的博客 220

Android学习笔记-ImageView(图像视图)

本节引言: 本节介绍的UI基础控件是:ImageView(图像视图),见名知意,就是用来显示图像的一个View或者说控件! 官方API:ImageView;本节讲解的内容如下: ImageView的src属性和blackground的区别; adjustViewBounds设置图像缩放时是否按长宽比 scaleType设置缩放类型 最简单的绘制圆形的ImageView...

diefachan8113的博客 734

android 4.x,Android(4.X)学习笔记

Activity启动流程Android操作系统 ---> AndroidManifest.xml --->MainAcitivity.onCreate() --->activity_main.xml ...sp 字体大小会随系统设置的改变而变dp 字体大小不会随系统设置的改变而变Ctrl+shift+O 自动导入Fragment的知识特别重要xmlns:tools="http:/...

weixin_33626609的博客 211
上一篇: 个人学习计划
下一篇: 自制智能手机电话APP
Stack_mz
博客等级 码龄11年 53粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值