使用LayoutInflater与findViewById结果为null问题
2016-01-22 15:07
381 查看
Toast toast = new Toast(MainActivity.this);
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog, null);
if(view == null){
Log.i("view", "--null");
}
ImageView img = (ImageView)findViewById(R.id.imageView1);
if(img == null){
Log.i("img", "--null");
}
上面这段代码在运行时发现View不为null,但img始终为null,找了很久没找到原因,最后经过网上搜索才得以解决。下面把解决思路和解决方法分享一下:
1、查看R.java文件,确认其中已经成功生成myview和imageview的id
2、思考:在activity中直接调用findViewById方法,它的完整形式是this.findViewById().而我所需要的控件是不存在当前activity的布局中的,那怎么改呢
3、尝试ImageView
view=(ImageView)view.findViewById(R.id.imageview);即通过控件所在的view调用findViewById方法,最后发现可以获取到正确的控件了
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog, null);
if(view == null){
Log.i("view", "--null");
}
ImageView img = (ImageView)findViewById(R.id.imageView1);
if(img == null){
Log.i("img", "--null");
}
上面这段代码在运行时发现View不为null,但img始终为null,找了很久没找到原因,最后经过网上搜索才得以解决。下面把解决思路和解决方法分享一下:
1、查看R.java文件,确认其中已经成功生成myview和imageview的id
2、思考:在activity中直接调用findViewById方法,它的完整形式是this.findViewById().而我所需要的控件是不存在当前activity的布局中的,那怎么改呢
3、尝试ImageView
view=(ImageView)view.findViewById(R.id.imageview);即通过控件所在的view调用findViewById方法,最后发现可以获取到正确的控件了
相关文章推荐
- PHP中的日期和时间
- Oracle ORA-01034,ORA-27101,ORA-00600
- 《面向对象程序设计》第一次作业
- Hibernate注解使用以及Spring整合
- openrisc 之 Wishbone总线学习笔记——总线特性
- 浅谈压缩感知(二十九):压缩感知算法之迭代硬阈值(IHT)
- 基本字段类型标识
- SQL Server中避免触发镜像SUSPEND的N种方法
- 某公司数据恢复报告书
- Linux终端彩色文字输出
- Session Timeout 与 $.ajaxSetup
- [从头学数学] 第57节 公顷和平方千米
- java集合框架中的数据结构
- android wifi连接开发实例
- ORACLE 存储过程被锁,编译不了,怎么解锁?
- Maven实战
- PLC-ANALYZER连接S7-200SMART,进行变量监视的方法:
- 堆排序
- 多摄像机层次关系
- 用li模拟select实现下拉框