1.实验:通过布局编辑器强行指定两个button id相同,然后在代码中通过findViewById()获得句柄后修改其文本。 

实验结果:只有一个button的文本变化了,另一个不受影响。 

2.实验:主布局只放一个linearLayout,代码中动态的new 一个button,然后同过Layout.addView()多次重复添加。 

实验结果:发现程序直接报错不让运行了。 

3.实验:主布局放置两个linearLayout,代码中new一个button后,通过Layout.addView()分别添加到两个不同布局中去。 

实验结果:发现程序直接报错不运行了。 

4.实验:Activity主布局放置一个按钮Id为btn001,创建一个对话框,其布局中也放置一个按钮,id同样为btn001,在Activity以及Dialog的onCreate函数中都通过findViewById来查找btn后修改文本。 

实验结果:两个按钮的文本都修改成了各自的文本,互不影响。 

5.实验:Activity中通过new创建一个button;将新创建的button添加到Activity上;创建一个对话框,将这个button再添加到对话框上。 

实验结果:程序运行出错。

结论: 

1.同一工程中的View的ID可以一样,在R文件中,同样的ID只会生成一个数据项。 

2.两个同ID的View被同一个View显示时,通过findViewById只能访问其中一个。 

3.同一个View(即new出来的句柄)只能被一个View管理,不能多次添加到另一个View或者另外多个View,否则程序运行出错。

版权声明:本文为博主原创文章,未经博主允许不得转载。

[转]Android试验:如果View的ID相同会出现什么效果?的更多相关文章

  1. android 使用Tabhost 发生could not create tab content because could not find view with id 错误

    使用Tabhost的时候经常报:could not create tab content because could not find view with id 错误. 总结一下发生错误的原因,一般的 ...

  2. 1.Android 视图及View绘制分析笔记之setContentView

    自从1983年第一台图形用户界面的个人电脑问世以来,几乎所有的PC操作系统都支持可视化操作,Android也不例外.对于所有Android Developer来说,我们接触最多的控件就是View.通常 ...

  3. Android简易注解View(java反射实现)

    一.引言 Android中通过findViewById在布局文件中找到需要的View,加入一个Activity里面有许多的View需要初始化,那将是一件很繁琐的事情.当然Google一下你会发现有很多 ...

  4. android studio: Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution o

    今天在运行部署项目时logcat弹出下列错误: -- ::-/? E/Zygote: v2 -- ::-/? I/libpersona: KNOX_SDCARD checking this -- :: ...

  5. Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件

    UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...

  6. Android - Bottom Navigation View

    目录 Android - Bottom Navigation View Android - Bottom Navigation View Overview 一直以来,关于Android的底部导航的功能 ...

  7. 把Android原生的View渲染到OpenGL Texture

    http://blog.csdn.net/u010949962/article/details/41865777 最近要把Android 原生的View渲染到OpenGL GLSurfaceView中 ...

  8. 【Android自己定义View实战】之自己定义超简单SearchView搜索框

    [Android自己定义View实战]之自己定义超简单SearchView搜索框 这篇文章是对之前文章的翻新,至于为什么我要又一次改动这篇文章?原因例如以下 1.有人举报我抄袭,原文链接:http:/ ...

  9. android开源项目---View篇

    本文转载自:http://blog.csdn.net/likebamboo/article/details/19080739 主要介绍那些不错个性化的View,包括ListView.ActionBar ...

随机推荐

  1. vs code 修改文件的缩进

    百度这个问题的都是强迫症患者. 前人代码是2个空格缩进,我习惯3个, step1:打开  文件 —>  首选项 —> 设置,进入用户设置 step2:设置缩进量,(加两句代码) step3 ...

  2. Java Hibernate Validator

    Hibernate Validator是Hibernate提供的一个开源框架,使用注解方式非常方便的实现服务端的数据校验. 官网:http://hibernate.org/validator/ hib ...

  3. 用DBCC CHECK修复SQL2000的数据库一致性问题

    ) set @databasename='需要修复的数据库实体的名称' exec sp_dboption @databasename, N'single', N'true' --将目标数据库置为单用户 ...

  4. 一次JVM调优经历

    前几天前端同事找我帮忙解决一个频繁FullGC问题.在100用户,每秒5个请求条件下进行测试,发现频繁FullGC. 使用VisualVM观察Jvm运行时信息,发现DB连接池占用了较多的资源.于是看了 ...

  5. goland实现函数式链式编程

    先来看一段代码 package main import ( "fmt" elastic "gopkg.in/olivere/elastic.v2" ) type ...

  6. 20155317 实验二 Java面向对象程序设计

    20155317 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...

  7. 20155334 实验五 Java网络编程及安全

    20155334 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 实验1: 参考 结对实现中缀表达式转后缀表达式 ...

  8. tkinter菜单图标,工具栏

    所用的图片: import tkinter as tk from tkinter import messagebox, filedialog, simpledialog, colorchooser f ...

  9. DSP5509的USB协议开发

    1. 使用的板子 2. 原理图相关,这个1.5K的上拉电阻,全速和高速上拉在D+,低速上拉在D- 3. 中断处理函数没有搞明白是什么意思?这个工程我怎么基本看不懂? interrupt void US ...

  10. WPF DataGridTable

    由于项目要显示表头合并,而数据源列随时变更,又不想重复的画表格,就实现动态数据(dynamic)绑定和配置数据列模板的方式 编辑DataGridColumnHeader样式实现表头合并:效果如下 实现 ...