mac android创建activity 空指针,NullPointerException空指针异常——没有事先加载布局文件到acitivy——缺少:setContentView(R.layout....

空指针异常:

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)判断

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 ...

随机推荐

(转)JS产生随机数的几个用法!

原文 1

[LeetCode] 76. Minimum Window Substring 解题思路

Given a string S and a string T, find the minimum window in S which will contain all the characters ...

navigaitonBar的自定义设置

navigaitonBar的自定义设置 navigationBar介绍: navigationbar就是一个导航视图控制器上面的导航栏. 如何设置这个navigationbar? 首先我们来探讨如何来 ...

hdu 3480 Division(斜率优化DP)

题目链接:hdu 3480 Division 题意: 给你一个有n个数的集合S,现在让你选出m个子集合,使这m个子集合并起来为S,并且每个集合的(max-min)2 之和要最小. 题解: 运用贪心的思 ...

深入理解linux网络技术-P179

上锁 net_device结构的组织一节可知,dev_base列表以及dev_name_head和dev_name_index两张hash表由dev_base_list锁保护.然而,该锁只用于对列表和 ...

网站限制某些ip访问,仅允许某些ip…

代码: function getIP() { return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_ ...

luogu2634 聪聪可可 (树形dp)

要求出两点间距离==0(mod3) 的数量,然后除以(n*n) 设f[i][j]为i的子树到i的距离==j(mod3)的数量,然后做树形dp即可 因为要最简,所以要求一下gcd,然后除下去 #incl ...

PHP中parent、this、self和static的区别

参考: http://www.cnblogs.com/devcjq/articles/2424738.html http://www.cnblogs.com/alsf/p/9621002.html h ...

Codeforce 294A - Shaass and Oskols (模拟)

Shaass has decided to hunt some birds. There are n horizontal electricity wires aligned parallel to ...

关于在web端运行项目,eclipse报PermGen space错误

之前在网上也查到过许多解决的方法,但可能因为本人脸黑........也修改过eclipse文件目录中的相关配置文件,并没有得到相应的帮助,因此把自己的改正方法分享下: window-->pref ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值