findViewById返回Null
来源:互联网 发布:计算机java就业前景 编辑:程序博客网 时间:2024/06/05 18:26
findViewById返回Null
10-04 17:43:05.400: E/AndroidRuntime(7135): Caused by: java.lang.NullPointerException
10-04 17:43:05.400: E/AndroidRuntime(7135): at com.solar.LoginActivity.initView(LoginActivity.java:35)
10-04 17:43:05.400: E/AndroidRuntime(7135): at com.solar.LoginActivity.onCreate(LoginActivity.java:17)
10-04 17:43:05.400: E/AndroidRuntime(7135): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-04 17:43:05.400: E/AndroidRuntime(7135): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
10-04 17:43:05.400: E/AndroidRuntime(7135): ... 11 more
如下所示,是提示错误的OnCreate函数。
1 protected void onCreate(Bundle savedInstanceState) {2 super.onCreate(savedInstanceState);3 Button btnLogin = (Button) findViewById(R.id.login_btn_login); //这里出错4 this.setContentView(R.layout.login_page);5 }
NullPointerException?找了好久,搞不清楚为什么出现这个错误。因为这句话怎么也看不出错误。布局文件里面也确实有login_btn_login这个按钮。
Button btnLogin = (Button) findViewById(R.id.login_btn_login);
后面终于想到:整个Activity都还没有渲染R.layout.login_page这个布局文件呢。怎么能要求他在R.layout.login_page这个布局文件里面找到按钮呢。所以返回的是null。
终于找到一段更好的解释:
当activity 调用 setContentView() 时,android 才会去绘制 layout 上的各个元素,并为其分配内存。只有 分配了内存以后,才能继续执行 ,findViewById(); 才能得到引用,不然得到空引用。
空引用意味着,后面使用相应变量时就会发生访问的对象不存在的问题。
而且当Activity重新setContentView()以后,那些之前绘制的控件,内存都被灭掉了。
所以,若是通过setContentView 来达到画面切换目的的,要注意重新绘制以后重新取得引用。
- findViewById()返回 null
- findViewById返回null
- Andorid findViewById()返回Null
- findViewById()返回null
- findViewById返回Null 错误
- findViewById 返回null
- android findViewById 返回 null
- findViewById()返回 null
- findViewById返回Null
- findViewById返回Null
- findViewById返回null
- findViewById返回Null
- findViewById返回null
- findViewById返回为NULL
- findViewById 返回 null 问题
- findViewById()返回null
- findViewById返回Null
- 为什么findViewById会返回null
- NSException:错误处理机制---调试中以及上架后的产品如何收集错误日志
- 成员函数指针与高效C++委托 (delegate)
- 结束线程的方法(转)
- 第九届中国国际地下工程与隧道施工机械、材料及技术展览会6月在沪举行
- 链表(7)----倒序打印链表
- findViewById返回Null
- spring security获取所有登录的用户信息
- Android Studio VS Eclipse
- OpenCV 笔记一:微分、梯度,Sobel、角点及Sift特征点
- iBatis简单入门
- 上级向的十个iOS面试问题
- hibernate中的组合主键的配置
- 大型网站系统架构的演化
- Java实现从网页表格导出CSV文件的例子