因为不甘心丶所以奋斗ing 2015-04-13 12:14 采纳率: 0%
浏览 2982

Unable to start activity ComponentInfo{XX}: 空指针

Unable to start activity ComponentInfo{XX}: java.lang.NullPointerException
错误截图:
图片说明

主Activity:

 package com.chow.hyit2a;

import com.chow.hyit2a.R.*;
import com.chow.hyit2a.Fragements.Fragement_MyCenter_in_TabActivity;
import com.chow.hyit2a.Fragements.Fragement_Referee_in_TabActivity;
import com.chow.hyit2a.Fragements.Fragement_checkin_in_TabActivity;
import com.chow.hyit2a.Fragements.Fragement_rank_in_TabActivity;

import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;

public class MainTabActivity extends Activity implements OnClickListener {

    private com.chow.hyit2a.Fragements.Fragement_checkin_in_TabActivity fragement_checkin_in_TabActivity;
    private com.chow.hyit2a.Fragements.Fragement_rank_in_TabActivity fragement_rank_in_TabActivity;
    private com.chow.hyit2a.Fragements.Fragement_Referee_in_TabActivity fragement_Referee_in_TabActivity;
    private com.chow.hyit2a.Fragements.Fragement_MyCenter_in_TabActivity fragement_MyCenter_in_TabActivity;

    /**
     * 底部四个按钮
     */
    private LinearLayout layout_bt_checkin_in_TabActivity;
    private LinearLayout layout_bt_rank_in_TabActivity;
    private LinearLayout layout_bt_Referee_in_TabActivity;
    private LinearLayout layout_bt_MyCenter_in_TabActivity;
    /**
     * 用于对Fragment进行管理
     */
    private FragmentManager fragmentManager;

    // private ActionBar ab=getActionBar();

    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_tab);
        ActionBar ab = getActionBar();
        ab.hide();
        initViews();
        fragmentManager = getFragmentManager();
        setTabSelection(0);
    }

    private void initViews() {

        layout_bt_checkin_in_TabActivity = (LinearLayout) findViewById(R.id.id_tab_bottom_competioncheck);
        layout_bt_rank_in_TabActivity = (LinearLayout) findViewById(R.id.id_tab_bottom_rank);
        layout_bt_Referee_in_TabActivity = (LinearLayout) findViewById(R.id.id_tab_bottom_points);
        layout_bt_MyCenter_in_TabActivity = (LinearLayout) findViewById(R.id.id_tab_bottom_mycenter);

        layout_bt_checkin_in_TabActivity.setOnClickListener(this);
        layout_bt_rank_in_TabActivity.setOnClickListener(this);
        layout_bt_Referee_in_TabActivity.setOnClickListener(this);
        layout_bt_MyCenter_in_TabActivity.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.id_tab_bottom_competioncheck:
            setTabSelection(0);
            break;
        case R.id.id_tab_bottom_rank:
            setTabSelection(1);
            break;
        case R.id.id_tab_bottom_points:
            setTabSelection(2);
            break;
        case R.id.id_tab_bottom_mycenter:
            setTabSelection(3);
            break;

        default:
            break;
        }
    }

    /**
     * 根据传入的index参数来设置选中的tab页。
     * 
     */
    @SuppressLint("NewApi")
    private void setTabSelection(int index) {
        // 重置按钮
        resetBtn();
        // 开启一个Fragment事务
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        // 先隐藏掉所有的Fragment,以防止有多个Fragment显示在界面上的情况
        hideFragments(transaction);
        switch (index) {
        case 0:
            // 当点击了消息tab时,改变控件的图片和文字颜色
            ((ImageButton) layout_bt_checkin_in_TabActivity
                    .findViewById(R.id.btn_tab_competioncheck))
                    .setImageResource(R.drawable.competioncheckin_light_png);
            if (fragement_checkin_in_TabActivity == null) {
                // 如果MessageFragment为空,则创建一个并添加到界面上
                fragement_checkin_in_TabActivity = new com.chow.hyit2a.Fragements.Fragement_checkin_in_TabActivity();
                transaction.replace(R.id.id_content,
                        fragement_checkin_in_TabActivity);
            } else {
                // 如果MessageFragment不为空,则直接将它显示出来
                transaction.show(fragement_checkin_in_TabActivity);
            }
            break;
        case 1:
            // 当点击了消息tab时,改变控件的图片和文字颜色
            ((ImageButton) layout_bt_rank_in_TabActivity
                    .findViewById(R.id.btn_tab_bottom_rank))
                    .setImageResource(R.drawable.rank_png_light);
            if (fragement_rank_in_TabActivity == null) {
                // 如果MessageFragment为空,则创建一个并添加到界面上
                fragement_rank_in_TabActivity = new com.chow.hyit2a.Fragements.Fragement_rank_in_TabActivity();
                transaction.replace(R.id.id_content, fragement_rank_in_TabActivity);
            } else {
                // 如果MessageFragment不为空,则直接将它显示出来
                transaction.show(fragement_rank_in_TabActivity);
            }
            break;
        case 2:
            // 当点击了动态tab时,改变控件的图片和文字颜色
            ((ImageButton) layout_bt_Referee_in_TabActivity
                    .findViewById(R.id.btn_tab_bottom_points))
                    .setImageResource(R.drawable.points_png_light);
            if (fragement_Referee_in_TabActivity == null) {
                // 如果NewsFragment为空,则创建一个并添加到界面上
                fragement_Referee_in_TabActivity = new com.chow.hyit2a.Fragements.Fragement_Referee_in_TabActivity();
                transaction.replace(R.id.id_content,
                        fragement_Referee_in_TabActivity);
            } else {
                // 如果NewsFragment不为空,则直接将它显示出来
                transaction.show(fragement_Referee_in_TabActivity);
            }
            break;
        case 3:
            // 当点击了设置tab时,改变控件的图片和文字颜色
            ((ImageButton) layout_bt_MyCenter_in_TabActivity
                    .findViewById(R.id.btn_tab_bottom_mycenter))
                    .setImageResource(R.drawable.mycenter_png_light);
            if (fragement_MyCenter_in_TabActivity == null) {
                // 如果SettingFragment为空,则创建一个并添加到界面上
                fragement_MyCenter_in_TabActivity = new com.chow.hyit2a.Fragements.Fragement_MyCenter_in_TabActivity();
                transaction.replace(R.id.id_content,
                        fragement_MyCenter_in_TabActivity);
            } else {
                // 如果SettingFragment不为空,则直接将它显示出来
                transaction.show(fragement_MyCenter_in_TabActivity);
            }
            break;
        }
        transaction.commit();
    }

    /**
     * 清除掉所有的选中状态。
     */
    private void resetBtn() {
        ((ImageButton) layout_bt_checkin_in_TabActivity
                .findViewById(R.id.btn_tab_competioncheck))
                .setImageResource(R.drawable.competioncheckin_png);
        ((ImageButton) layout_bt_rank_in_TabActivity
                .findViewById(R.id.btn_tab_bottom_rank))
                .setImageResource(R.drawable.rank_png);
        ((ImageButton) layout_bt_Referee_in_TabActivity
                .findViewById(R.id.btn_tab_bottom_points))
                .setImageResource(R.drawable.points_png);
        ((ImageButton) layout_bt_MyCenter_in_TabActivity
                .findViewById(R.id.btn_tab_bottom_mycenter))
                .setImageResource(R.drawable.mycenter_png);
    }

    /**
     * 将所有的Fragment都置为隐藏状态。
     * 
     * @param transaction
     *            用于对Fragment执行操作的事务
     */
    @SuppressLint("NewApi")
    private void hideFragments(FragmentTransaction transaction) {
        if (layout_bt_checkin_in_TabActivity != null) {
            transaction.hide(fragement_checkin_in_TabActivity);
        }
        if (layout_bt_rank_in_TabActivity != null) {
            transaction.hide(fragement_rank_in_TabActivity);
        }
        if (layout_bt_Referee_in_TabActivity != null) {
            transaction.hide(fragement_Referee_in_TabActivity);
        }
        if (layout_bt_MyCenter_in_TabActivity != null) {
            transaction.hide(fragement_MyCenter_in_TabActivity);
        }

    }

}

MainFest

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.chow.hyit2a"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="17"
        android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainTabActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".RegisterActivity"
            android:label="欢迎注册" >
        </activity>
        <activity
            android:name=".MainFucntionActivity"
            android:label="@string/title_activity_main_fucntion" >
        </activity>
        <activity
            android:name=".MainActivity"
            android:label="" >
        </activity>

    </application>

</manifest>

  • 写回答

5条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-04-13 12:38
    关注

    backstockrecord第658行有空指针,调试看看谁为空

    评论

报告相同问题?

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样