本文分析了Android编程中@id和@+id的区别。分享给大家供大家参考,具体如下:
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/? 在@+id/加号中+指示创建一个新的资源名称并将其添加到R.java文件中,但是那又如何@id/呢?从:的文档中,ID当引用Android资源时ID,不需要加号,但必须添加android包名称空间,如下所示: 但是在下面的图像中,Eclipse并未提出任何建议@android:id/。 该图显示了对@ / id和@ + / id的建议 是和一样吗
本文向大家介绍Android中@id和@+id及@android:id的区别介绍,包括了Android中@id和@+id及@android:id的区别介绍的使用技巧和注意事项,需要的朋友参考一下 前言 昨天突然有新来的同事问我这个@id 和@+id 的区别 ,为什么 我们的项目都是@id 自己新增的ui 使用的@+id 这里说下我的简单的回复项目是维护的之前的是为了统一管理使用了@id 方便修改
也许是一个新手的问题...... 我开始学习JavaFX在FMXL应用程序中使用场景生成器,通过阅读以下教程: http://docs.oracle.com/javase/8/javafx/get-started-tutorial/fxml_tutorial.htm 所以一旦我应用了一些更改,这个2个ID的问题出现了...我可能错过了或混淆了他们的一些事情... 谁能告诉我它们在哪些情况下被使用?
问题内容: 我想知道和之间有什么区别。我知道最后一个是常规的ID分配,但第一个看起来不同。有什么特别之处? 我在哪里看到的: 我正在研究ListView,ListAdapter之类的东西,作者在布局xml文件中定义了ListView,如下所示: 我也要提一下id 他还扩大了课堂。 这是文章的出处。 还有我在想什么问题: 我们应该扩展吗?也许我想要一个还包含其他视图的活动。 我们只是因为扩展而使用,
我正在用单个主题和多个分区实现kafka producer。我通过消息中的一个特定值(消息json中的feedName属性值)选择消息到哪个分区。我正在为feedName-partitionId映射维护一个SQL表。我的问题是,leader和副本的分区Id是否相同?如果不同,如何在所有代理中唯一地标识分区?
问题内容: 也许是一个真正的新手问题。 通过阅读以下教程,我将开始使用Scene Builder在FMXL应用程序中学习JavaFX: http://docs.oracle.com/javase/8/javafx/get-started-tutorial/fxml_tutorial.htm 因此,一旦我应用了一些更改,就会出现有关这2个ID的问题…我可能已经错过或混淆了一些关于它们的信息… 谁能告