NullPointerException空指针异常——没有事先加载布局文件到acitivy——缺少:setContentView(R.layout.activity_setup_over);
空指针异常:
04-27 01:13:57.270: E/AndroidRuntime(4942): FATAL EXCEPTION: main
04-27 01:13:57.270: E/AndroidRuntime(4942): Process: com.itheima.mobilesafe74, PID: 4942
04-27 01:13:57.270: E/AndroidRuntime(4942): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.itheima.mobilesafe74/com.itheima.mobilesafe74.activity.SetupOverActivity}: java.lang.NullPointerException
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.os.Handler.dispatchMessage(Handler.java:102)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.os.Looper.loop(Looper.java:136)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.app.ActivityThread.main(ActivityThread.java:5017)
04-27 01:13:57.270: E/AndroidRuntime(4942): at java.lang.reflect.Method.invokeNative(Native Method)
04-27 01:13:57.270: E/AndroidRuntime(4942): at java.lang.reflect.Method.invoke(Method.java:515)
04-27 01:13:57.270: E/AndroidRuntime(4942): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-27 01:13:57.270: E/AndroidRuntime(4942): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-27 01:13:57.270: E/AndroidRuntime(4942): at dalvik.system.NativeStart.main(Native Method)
04-27 01:13:57.270: E/AndroidRuntime(4942): Caused by: java.lang.NullPointerException
04-27 01:13:57.270: E/AndroidRuntime(4942): at com.itheima.mobilesafe74.activity.SetupOverActivity.initUI(SetupOverActivity.java:46)
04-27 01:13:57.270: E/AndroidRuntime(4942): at com.itheima.mobilesafe74.activity.SetupOverActivity.onCreate(SetupOverActivity.java:38)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.app.Activity.performCreate(Activity.java:5231)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-27 01:13:57.270: E/AndroidRuntime(4942): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
相应代码:
package com.itheima.mobilesafe74.activity; import com.itheima.mobilesafe74.R;
import com.itheima.mobilesafe74.utils.ConstentValue;
import com.itheima.mobilesafe74.utils.SpUtil;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView; /**
* 说明 :手机安全导航设置完成的界面
*/
public class SetupOverActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_setup_over);
boolean setup_over = SpUtil.getBoolean(this, ConstentValue.SETUP_OVER,
false);
if (setup_over)
{
// 手机安全导航设置完成跳转到设置完成的界面
setContentView(R.layout.activity_setup_over);
} else
{
// 手机安全导航设置没有完成跳转到导航设置1的界面
Intent intent = new Intent(this, Setup1Activity.class);
startActivity(intent);
// 跳转到一个新的界面时需要关闭当前界面
finish();
}
initUI();
} private void initUI()
{ TextView tv_safe_number = (TextView) findViewById(R.id.tv_safe_number);
String phone = SpUtil.getString(this, ConstentValue.CONTACT_PHONE, "");
tv_safe_number.setText(phone);
// 重新进入设置向导textview点击侦听
TextView tv_reset_setting = (TextView) findViewById(R.id.tv_reset_setting);
tv_reset_setting.setOnClickListener(new OnClickListener()
{ @Override
public void onClick(View v)
{
// 手机安全导航设置没有完成跳转到导航设置1的界面
Intent intent = new Intent(getApplicationContext(),
Setup1Activity.class);
startActivity(intent);
// 跳转到一个新的界面时需要关闭当前界面
finish();
}
});
}
}
分析:由于调用initUI(),方法之前没有加载布局文件setContentView(R.layout.activity_setup_over);
导致后面45行tv_safe_number和48行tv_reset_setting通过findviewbyid方法调用时报出空指针
解决方案1:在protected void onCreate(Bundle savedInstanceState)方法体中添加setContentView(R.layout.activity_setup_over),
解决方案2:在45行tv_safe_number和48行tv_reset_setting用到这两个指针是做if(tv_safe_number!=null)判断
NullPointerException空指针异常——没有事先加载布局文件到acitivy——缺少:setContentView(R.layout.activity_setup_over);的更多相关文章
- Android 解决在初次打开Activity加载布局文件时,ScrollView滚动条不在顶部的问题
出现这种问题的情况列举:ScrollView中嵌套有(包括自定义)的ListView,GridView时,会出现这种情况 解决办法: 1.在布局加载时让ScrollView上面的那个控件聚焦,具体做法 ...
- QCustomplot使用分享(八) 绘制图表-加载cvs文件
目录 一.概述 二.效果图 三.源码讲解 1.源码结构 2.头文件 3.移动游标 4.设置坐标轴矩形个数 5.添加图表数据 6.设置折线图类型 6.其他函数 四.测试方式 1.测试工程 2.测试文件 ...
- RecyclerView的使用之多种Item加载布局
精益求精,为了更加透彻熟练得掌握,本文再次给大家介石介绍下如何利用RecyclerView实现多Item布局的加载,多Item布局的加载的意思就是在开发过程中List的每一项可能根据需求的不同会加载不 ...
- assets 加载资源文件
引用:http://abc20899.iteye.com/blog/1096620 1.获取资源的输入流 资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以 ...
- Android -- 加载布局
如果在Activity中用到了别的Layout ,比如对话框等,你还要使用对话框中的组件,如TextView等,必须要先加载布局,然后才能使用里面的控件, 如 : View view = View.i ...
- Android四大组件之Activity(活动)及其布局的创建与加载布局
Android四大组件之Activity(活动)及其布局的创建与加载布局 什么是Activity ? 活动(Activity)是包含用户界面的组件,主要用于和用户进行交互的,一个应用程序中可以包含零个 ...
- Android 如何本地加载pdf文件
大部分app打开pdf文件是通过intent调起手机中能打开pdf文件的工具,来查看pdf文件,如果需求是,用户在app内下载好pdf文件后,不通过第三方的工具,本地打开. 这样的需求要怎么实现呢?上 ...
- Java加载资源文件的两种方法
处理配置文件对于Java程序员来说再常见不过了,不管是Servlet,Spring,抑或是Structs,都需要与配置文件打交道.Java将配置文件当作一种资源(resource)来处理,并且提供了两 ...
- java加载properties文件的六中基本方式实现
java加载properties文件的方式主要分为两大类:一种是通过import java.util.Properties类中的load(InputStream in)方法加载: 另一种是通过impo ...
随机推荐
- php 随机红包算法
<?php /** * 红包分配算法 * * example * $coupon = new Coupon(200, 5); * $res = $coupon->handle(); * p ...
- spring框架-jdbc
一.实体层的不同名字 entity 实体类 :就是和数据库表一一对应的JavaBean pojo 简单的java对象:任何应用场景的JavaBean po 持久化对象 :就是和数据库表一一对 ...
- 0x16 Tire
参考链接:https://www.cnblogs.com/TheRoadToTheGold/p/6290732.html 题目链接:https://www.acwing.com/problem/con ...
- numpy计算结果的保存——ndarray格式数据保存
1 Python保存numpy数据: numpy.savetxt("result.txt", numpy_data) 2 保存list数据: file = open('data.t ...
- UE4外包团队:更新一下UE4和Unity3D案例
全部的贴图都是用出的法线贴图构建的话只用了阳光和天光,都是静态光源,视角是第一人称模板最后的效果嘛就是全4K,120帧,0错误0警告,场景小是小了点但是效果还不错. 工作活有时间更新,欢迎有UE4和U ...
- testng.xml中groups标签使用
XML配置如下: <?xml version="1.0" encoding="UTF-8"?> <suite name="suite ...
- Struts 2 概念介绍
概念引入 Web层通常使用Servlet+jsp,现在使用Struts2来处理访问服务器请求 Service层 目前使用JavaBean Dao层目前使用Hibernate Spring是一个大的管家 ...
- Windows 下 docker 部署 gitlab ci
一.安装 1. 安装 docker Docker下载 注意:Windows 10 家庭版获取 之前的版本不能直接安装 Docker ,而是需要去安装 Docker Toolbox 我这里安装的是 Do ...
- NRF52832与W25Q80通信
1 NRF52832SPI主机的功能描述 nRF52832SPIM的主要特征 3个SPI实例 支持SPI的模式0到模式3 支持DMA Individual selection of IO pin fo ...
- linux下初始化mysql时报错
执行mysqld --initialize后报错 报错内容: 019-04-24 18:07:59 0 [Warning] TIMESTAMP with implicit DEFAULT value ...