Androin学习笔记二十:findViewById 为null
来源:互联网 发布:玉兔miki淘宝照片 编辑:程序博客网 时间:2024/04/30 12:46
不断更新。。。
1.在另一个view的元素应该用baseView.findViewById()来拿
findViewById()是要指定view的,如果在该view下找不到,自然报null。平时注意养成写view.findViewById()的习惯就不容易错了。
2.findViewById在setContentView(R.layout.main);之前.
即在setContentView调用之前,调用了findViewById去找main布局中的界面元素lv_contactbook,那么所得到的lv一定是null。正确的做法是将上面代码中加粗的哪一行,挪至setContentView方法调用之后即可。
3.clean一下工程,让ID重新生成
这种情况是调用LayoutInflater.inflate将布局xml规定的内容转化为相应的对象。比如有rowview.xml布局文件(比如在自定义Adapter的时候,用作ListView中的一行的内容的布局),假定在自定的Adapter的getView方法中有类似如下的代码:
View rowview = (View)inflater.inflate(R.layout.rowview, parent, false);TextView tv_contact_id =(TextView)rowview.findViewById(R.id.tv_contact_id);TextView tv_contactname =(TextView)rowview.findViewById(R.id.tv_contactname);
有时候居然也会发现rowview非空,但tv_contact_id和tv_contactname都是null!仔细看代码,怎么也看不出错误来。到底是什么原因造成的呢?答案是Eclipse造成的,要解决这个问题,需要这个项目clean一次(Project菜单 -> Clean子菜单),这样就OK了。
4.对于自定义view,可能是构造方法不对
public MyView(Context context,AttributeSet attr) { super(context); //这里调用的构造方法不对。应该调用super(context,attr);}
0 0
- Androin学习笔记二十:findViewById 为null
- findViewById为null
- findViewById值为null
- findViewById返回为NULL
- Androin学习笔记二十二:WIFI开发总结
- Androin学习笔记二十三:wifi讲解 wifi列表显示
- Androin学习笔记二十四:wifi连接操作
- Androin学习笔记二十五:InetAddress(示例,出错代码)
- Androin学习笔记二十六:wifi各个类简要分析
- Androin学习笔记二十一:wifi的简单使用方法----获得本机或主机信息
- Androin学习笔记五十一: SQLite 常用函数
- Android通过findViewById()获取控件为NULL
- Fragment findViewById为null Android(八-1)
- 学习笔记(二十)
- Androin学习笔记三十九:Android 中文乱码问题
- Androin学习笔记四十:OutputStream(示例,出错代码)
- Androin学习笔记四十一:InputStream(示例,出错代码)
- Androin学习笔记四十三:Socket(示例,出错代码)
- javaweb中常用的验证工具类
- 开源KVM管理平台
- 数据库设计
- session详解
- 机器学习课堂笔记(十八)
- Androin学习笔记二十:findViewById 为null
- Qt自定义样式/无边框窗口/子窗口模态/非模态问题
- 小爱
- STL-水果
- acm 2016/5/18 hpu15级练习 C
- BM25算法的实现过程
- 字符串与数组的相互转换
- 构造方法
- pojo和javabean的区别(总结)