通過ID找到Layout的 VIEW控件。,比如你的控件Button ID為"@+id/button01" 就可以通過這樣Button btn=(Button)findViewById(R.id.button01")找到控件。。這時這個btn就是代表這個按鈕。。你可以理解成JS的getElementById()。

Android中FindViewById()是一个非常常用的函数,位于android.app.Activity包中。该函数利用我们在XML文件中定义的View的id属性来获取相应的View对象。findViewById()属于API Level 1, 对应的android版本是android1.0, 由此,可以看出,该函数是android早期版本中就有的。顺便说一下, android目前市场上已商用的版本及其对应的API Level如下:

android 1.0 API Level 1

android 1.1 API Level 2

android 1.5 API Level 3

android 1.6 API Level 4

android 2.0 API Level 5

android 2.0.1 API Level 6

android 2.1 API Level 7

android 2.2 API Level 8

1、参数错误:findViewById的参数是一个View的ID,如果在XML文件中没定义相应的ID,则程序会

善意的告诉你:XXX cannot be resulved。此时,补充定义就可以了。

2、未指定调用布局:findViewById()的调用与具体的布局有关,默认的是main.xml中的布局,函数前

没有布局指示。不过,当我们在main.xml描述的布局中,添加其它布局时,利用该函数获

取所添加布局中的View,则需在调用时,添加布局名,形式如下:

addLayout.findViewById(), 如果不这么做,程序编译时有时不会报错,但运行时会

提示遇到异常,并强制关闭应用。

3、命名冲突:这个错误可能不是很常见,不过,要是没有遇到过,猛的来这么一下,还真让人 有点懵。

呵呵,本人就犯过这样的错误。解释下,这里的命名冲突是指当前工程中定义的类与

android在Framework中提供的名字相同,这样的话,当前工程文件中,会优先使用本工

程中的定义。当然,使用findViewById()函数时,发生这种错误必须满足以下几个条件:

一是:需要在当前工程中利用ID(xml中定义)来查找对应的View对象;

二是:查找的View类名恰好与本工程中已有的类定义相同

三是:同名的两个类实例化后产生的对象类型不同,如:一个是View, 一个是Activity。


更多相关文章

  1. Android(安卓)JNI(实现自己的JNI_OnLoad函数)
  2. 【起航计划 016】2015 起航计划 Android(安卓)APIDemo的魔鬼步伐
  3. Android(安卓)JNI(实现自己的JNI_OnLoad函数)
  4. Android(安卓)Camera调用流程
  5. Android中framework层下添加aidl编译说程序包不存在
  6. Android中通过按键旋转屏幕
  7. Android(安卓)P的音频架构(二)
  8. 不能直接从eclipse拷贝源码到android系统中。
  9. 箭头函数的基础使用

随机推荐

  1. 不同Android版本设备正确获取屏幕分辨率
  2. :Handler方法小结(在线程中更新UI和了解Han
  3. 善用Android命令行下sqlite3命令提速调试
  4. 【Android】 ANR异常及traces信息解析
  5. 基于Restful架构规范的Android的网络请求
  6. Android 开发环境搭建---Android 编译需
  7. android知识链接汇总
  8. 将 Android Studio 的项目放入Android 源
  9. Android架构分析之基于Android系统的C应
  10. Android中Context的总结及其用法