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>