findViewById 返回 null 问题
2016-03-23 14:43
399 查看
用Eclipse新建一个简单应用,添加一个简单按钮,显示没有问题,就是添加响应后,一运行就出错退出。
调试一下,发现 findViewById函数返回null。
在网上找了好多,被搞的晕了,后来才找到原因。
以前android 没有Fragment,添加的按钮都加到activity_main.xml,现在有Fragment,添加的按钮都加到fragment_main.xml。
在onCreate中, setContentView(R.layout.activity_main); 所以 ContentView是activity_main, 当然找不到按钮。
而我以前都习惯在onCreat中初始化控件,所以出现这个问题。
在onCreateView中,可以找的fragment_main,如下调用返回正常:
如果不是在onCreatView里,可以下面方式:
调试一下,发现 findViewById函数返回null。
在网上找了好多,被搞的晕了,后来才找到原因。
以前android 没有Fragment,添加的按钮都加到activity_main.xml,现在有Fragment,添加的按钮都加到fragment_main.xml。
在onCreate中, setContentView(R.layout.activity_main); 所以 ContentView是activity_main, 当然找不到按钮。
而我以前都习惯在onCreat中初始化控件,所以出现这个问题。
在onCreateView中,可以找的fragment_main,如下调用返回正常:
View rootView = inflater.inflate(R.layout.fragment_main, container, false); mButton = (Button)rootView. findViewById(R.id.button1);
如果不是在onCreatView里,可以下面方式:
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rootView = (View)inflater.inflate(R.layout.fragment_main, null); mButton = (Button)rootView. findViewById(R.id.button1);
相关文章推荐
- 备忘录模式
- 地道的 Python(一)
- face key point with 7 points
- 控制ALV单元格可编辑
- linux邮件发送测试 直接shell/smpt发送
- zabbix 监控Nginx
- 在eclipse上用tomcat部署项目404解决方案
- 可编辑单元格ALV
- Socket通信原理探讨(C++为例)
- 产品学习:变电站智能机器人巡检系统设计
- selenium2.0关于python的常用函数(一)
- 策略模式
- Android四种存储方式
- jquery选取自定义属性为已知值的元素
- 【Swift】iOS UICollectionView 计算 Cell 大小的陷阱
- RabbitMQ 原文译01--简介
- 开通博客第一天
- java 发送http json请求
- Android 常用库 - 记录帖
- iOS开发中,单个页面屏幕旋转问题