@+android:id的一些记录

在修改Settings模块的APN列表时,遇到了类似标题中的一些写法。

在网上查了一下:

加上android:表示引用android.R.id里面定义的id资源,如果android.R.id里面确实有这个id资源,就直接使用它,如果没有的话就在当前应用的R.id中产生一个标识。

id是控件的一个基本属性,这并不代表每个控件的id都不一样,其实控件的id属性是可以相同的,所有的控件被加载到内存以后就会形成一个控件树形结构,当查找控件的时候,只返回第一个id匹配的控件,所以如果一个页面中有相同id的控件,比如listview的item,当查找控件的时候要从它最邻近的一个父节点开始查找,这样才会命中。

在布局xml中引用了"@+android:id/***"资源后,想在java代码中通过findViewById(R.id.***)获取资源,有些可以获取到对应控件的引用,有些却无法获取到。

关于"@+id/btn"和"@id/btn":

android:id="@+id/btn",
表示在R.java文件里面新增一个id为btn的控件索引,最常用的一种声明控件id的方式。
android:id="@android:id/tabhost",表示引用的是系统已有的ID,在对应的sdk目录下的ids.xml里面。一般外部不去调用,是组件内部调用的时候使用。

android:id="@id/btn"  ,表示引用一个已经存在的ID,在R.java里面的。比如我们自己建了一个ids.xml,里面声明了一组id,其中一个是btn;也可能是前面已经通过"@+id/btn"申明了一个id,那么你就可以这样引用了。

时间: 2024-10-12 05:13:13

@+android:id的一些记录的相关文章

Android 笔记之错误记录

前言--好记性不如烂笔头,记录Android学习过程中遇到的各种问题BUG.O(∩_∩)O 错误1 -- Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0 错误原因--一般是int 型数据赋给String ,然后让TextView显示就会出现如上错误. 解决办法--用String.valueOf 或者在int数据后加"" 错误2-- 在布局文件中,文本的设置使用如下写法

Android Adapter的一些记录

一.摘要 An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set. 这是Android官方对Adapter的

Android WebView填坑记录

前言 在应用程序开发过程中,经常会采用webview来展现某些界面,这样就可以不受发布版本控制,实时更新,遇到问题可以快速修复. 但是在Android开发中,由于Android版本分化严重,每一个版本针对webview都有部分更改,因此在开发过程中会遇到各种各样的坑,因此在此总结一下在开发过程中遇到的一些坑! 样例 这里不是讲解怎么进行webview开发,而是只罗列其中遇到的一些坑!为了展示这些问题,我们还是写一个样例来进行展开. 样例代码: /** * WebView demo */ publ

android布局常用属性记录

android布局常用属性记录 27. 三 / android基础 / 没有评论 http://blog.csdn.net/xn4545945/article/details/7717086这里有一部分别人总结的其余的: align:对齐 parent:容器 bottom:底部 alignparentbottom:是否显示在容器底部. 值为true 或者 false android:layout_alignParentBottom=”true” android:gravity=”top” htt

@+id/和android:id有什么区别?

Any View object may have an integer ID associated with it, to uniquely identify the View within the tree. When the application is compiled, this ID is referenced as an integer, but the ID is typically assigned in the layout XML file as a string, in t

android:id="@android:id/tabhost" 、android:id="@+id/llRoot" 、android:id="@id/llRoot" 之间的区别

由于快要放暑假了,所以最近这俩周把Android方面的知识复习一下,准备找个实习工作. 顺便把自己的总结更大家分享一下,共同进步,谢谢.... 一. android:id="@android:id/tabhost"   是调用系统内部的ID 和代码中 mTabContent = (FrameLayout) findViewById(com.android.internal.R.id.tabcontent); 是一回事. 二. android:id="@+id/llRoot&q

android:id 中区别。。

一. android:id="@android:id/tabhost"   是调用系统内部的ID 和代码中 mTabContent = (FrameLayout) findViewById(com.android.internal.R.id.tabcontent); 是一回事. 二. android:id="@+id/llRoot" 就是自己定义一个新的ID. 三. android:id="@id/llRoot"

【工作记录】android手势事件操作记录

/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //参数解释: // e1:第1个ACTION_DOWN MotionEvent // e2:最后一个ACTION_MOVE MotionEvent // velocityX:X轴上的移动速度,像素/秒 // velocityY:Y轴上的移动速度,像素/秒 // 触发条件 : /

Android开发环境搭建记录201408

目的是采用android + ndk(JNI),使用c/c++编译生成opencv的相关函数的库. 默认jdk已安装好,JAVA_HOME, CLASSPATH, path已设置好.android开发的IDE有两种,Eclipse和Android Studio(http://developer.android.com/sdk/installing/studio.html),后者采用的gradle工具不了解,暂时就不试了. 1. Eclipse CDT + Cygwin环境 Eclipse c/c