android-安卓新手 界面底部工具栏设置三个图片按键,点击切换时一直报错,麻烦高手指点下。

问题描述

安卓新手 界面底部工具栏设置三个图片按键,点击切换时一直报错,麻烦高手指点下。

Eclipse调试错误信息如下:

MainActivity.java代码如下:
package activity;

import com.example.social.R;

import fragment.OneFragment;
import fragment.ThreeFragment;
import fragment.TwoFragment;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;

public class MainActivity extends FragmentActivity implements OnClickListener {
private Fragment mOneFragment;
private Fragment mTwoFragment;
private Fragment mThreeFragment;
private View currentButton;

private ImageButton mNews, mSetting, mConstact;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    initView();
}

private void initView() {
    // TODO Auto-generated method stub
    mOneFragment = getSupportFragmentManager().findFragmentById(
            R.id.fragment_one);// 第一页
    mTwoFragment = getSupportFragmentManager().findFragmentById(
            R.id.fragment_two);// 第二页
    mThreeFragment = getSupportFragmentManager().findFragmentById(
            R.id.fragment_three);// 第三页
    findView();
}

private void findView() {
    // TODO Auto-generated method stub
    mNews = (ImageButton) findViewById(R.id.buttom_news);// 消息
    mConstact = (ImageButton) findViewById(R.id.buttom_constact);// 联系人
    mSetting = (ImageButton) findViewById(R.id.buttom_setting);// 我

    mNews.setOnClickListener(this);
    mConstact.setOnClickListener(this);
    mSetting.setOnClickListener(this);

}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.buttom_news:
        getSupportFragmentManager().beginTransaction().hide(mTwoFragment)
                .hide(mThreeFragment).show(mOneFragment).commit();
        setButton(v);
        break;
    case R.id.buttom_constact:
        getSupportFragmentManager().beginTransaction().hide(mOneFragment)
                .hide(mThreeFragment).show(mTwoFragment).commit();
        setButton(v);
        break;
    case R.id.buttom_setting:
        getSupportFragmentManager().beginTransaction().hide(mOneFragment)
                .hide(mTwoFragment).show(mThreeFragment).commit();
        setButton(v);
        break;
    default:
        getSupportFragmentManager().beginTransaction().hide(mOneFragment)
                .hide(mTwoFragment).hide(mThreeFragment).commit();
        break;
    }
}

private void setButton(View v) {
    if (currentButton != null && currentButton.getId() != v.getId()) {
        currentButton.setEnabled(true);
    }
    v.setEnabled(false);
    currentButton = v;
}

}
main.layout代码如下:
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
    android:id="@+id/buttom_bar_group"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="center_vertical"
    android:orientation="horizontal" >

    <RelativeLayout style="@style/ButtomBar" >

        <ImageButton
            android:id="@+id/buttom_news"
            style="@style/ButtomBarImgBtn"
            android:background="@drawable/bar_news"
            android:contentDescription="@string/app_name" />
    </RelativeLayout>

    <RelativeLayout style="@style/ButtomBar" >

        <ImageButton
            android:id="@+id/buttom_constact"
            style="@style/ButtomBarImgBtn"
            android:background="@drawable/bar_constact"
            android:contentDescription="@string/app_name" />
    </RelativeLayout>

    <RelativeLayout style="@style/ButtomBar" >

        <ImageButton
            android:id="@+id/buttom_setting"
            style="@style/ButtomBarImgBtn"
            android:background="@drawable/bar_setting"
            android:contentDescription="@string/app_name" />
    </RelativeLayout>
</LinearLayout>

<View
    android:id="@+id/line"
    android:layout_width="match_parent"
    android:layout_height="0.5dp"
    android:layout_above="@id/buttom_bar_group"
    android:background="#CBCED2" />

<FrameLayout
    android:id="@+id/fl_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/line" >

    <fragment
        android:id="@+id/fragment_one"
        android:name="fragment.OneFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <fragment
        android:id="@+id/fragment_two"
        android:name="fragment.TwoFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <fragment
        android:id="@+id/fragment_three"
        android:name="fragment.ThreeFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</FrameLayout>

selector设置图片Button控件,其中的联系人控件:
<?xml version="1.0" encoding="utf-8"?>

<item android:drawable="@drawable/skin_tab_icon_contact_selected" android:state_enabled="false"/>
<item android:drawable="@drawable/skin_tab_icon_contact_selected" android:state_pressed="true"/>
<item android:drawable="@drawable/skin_tab_icon_contact_normal"/>

错误详细描述:
点击图片按键时,显示停止运行,然后重新载入主界面,主界面三个fragment叠加显示出来。
耽误高手一点点时间指点下,谢谢。

解决方案

那不是已经明确告诉你是空指针错误了吗,那你就从点击开始跟踪调试,看看谁是空的,肯定是某个对象没有得到,但是你也没有容错处理

解决方案二:

这会没电脑,手机看着不方便,空指针异常,你可以看看你点击后执行的代码是不是有未初始化的,或者是不能访问到的变量!还有就是你的点击监听里不要把代码写在一行,特别是一开始学习,分开写便于调试!祝你好运

解决方案三:

空指针很好调,设断点,哪里报空指针就在前面设断点。加油

时间: 2024-10-03 03:35:33

android-安卓新手 界面底部工具栏设置三个图片按键,点击切换时一直报错,麻烦高手指点下。的相关文章

调试-新手Visual C++ 2008编译汇编报错求高手指点!来人啊

问题描述 新手Visual C++ 2008编译汇编报错求高手指点!来人啊 正在创建临时文件"e:huibianmasmmasmDebugBAT00000135563700.bat",其内容为 [ @echo off ml.exe /c /nologo /Fo""Debug10.obj"" /I ""C:lnclude"" /W3 /Zi /errorReport:prompt /Ta.10.asm if

visual c++-新手Visual C++ 2008编译汇编报错求高手指点!来人啊

问题描述 新手Visual C++ 2008编译汇编报错求高手指点!来人啊 正在创建临时文件"c:Documents and SettingsfengyuMy DocumentsVisual Studio 2008ProjectsmasmmasmDebugRSP00000F16563976.rsp",其内容为[/OUT:""C:Documents and SettingsfengyuMy DocumentsVisual Studio 2008Projectsmasm

jdbc-安卓新手用JDBC连接mysql时一直报错

问题描述 安卓新手用JDBC连接mysql时一直报错 抛出异常在logcat提示:驱动连接成功,数据库连接失败Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo.求大神帮忙,错误围绕好长时间了 连接代码 //连接数据库 public static Connection

设置-关于delphi,高手指点下

问题描述 关于delphi,高手指点下 以上图片 设置->系统设置->部门设置下的这些功能是怎么实现的??? 解决方案 http://blog.csdn.net/genispan/article/details/4541482http://www.bilsen.com/windowsribbon/index.shtml 解决方案二: http://blog.csdn.net/genispan/article/details/4541482 解决方案三: 非常感谢!!!!!!! 解决方案四: 用

Android实现简单的账号注册功能时JSON报错?

问题描述 Android实现简单的账号注册功能时JSON报错? 最近在做一个对接融云的聊天界面,在实现注册功能时报错.具体如下: 通过Android客户端注册账号,服务器和数据库用Apache+php+Mysql+phpmyadmin. Android主要代码 final String username = et_username.getText().toString(); String password = et_password.getText().toString(); if (usern

我是一名.net新手,我想在最短时间内做一个电子商务网站,需要注意些什么呢?有什么好的简单的方法吗!请高手指点下……谢谢

问题描述 我是一名.net新手,我想在最短时间内做一个电子商务网站,需要注意些什么呢?有什么好的简单的方法吗!请高手指点下我的目的是:快速开发使用方便基本功能要有!希望各位高手给点建议-- 解决方案 解决方案二:做吧!up!..解决方案三:照着别人的网站做就可以了解决方案四:电子商务..要求安全性高撒金额有关系的都要用事务存储过程..要注意防SQL注入服务器安全--------做电子商务不是做OA那么简单哦.很容易被人加攻击的.解决方案五:参考PetShophttp://msdn.microso

ssh整合-spring整合hibernate做测试时没有报错,当三个整合时启动就报错啦,求大神指点!!

问题描述 spring整合hibernate做测试时没有报错,当三个整合时启动就报错啦,求大神指点!! 报的错误org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method 'ecsUnsigned' on target class [class $Proxy17] failed; nested exception is org.springframework.tran

android studio 中编译时老是报错

问题描述 android studio 中编译时老是报错 在文件中都有,但是为什么还是有错: 解决方案 http://zhidao.baidu.com/link?url=nqNjZq730FSkqIB-yNckbp0co3ENuoAoHQTY4xq4zW73Fe--x88FKQ3JiYA_R1uZhnyy9T6ERxhfOQlmrWgKkEyA4yu2nC-b4uBh2NM_Bqu 解决方案二: 报的什么错呢? 不然没法分析的

sdl-编译pjsip android版时SDL报错

问题描述 编译pjsip android版时SDL报错 为了支持x264解码,使用支持x264的ffmpeg和SDL2.0编译pjsip的android版.编译好了SDL2,在pjsip的根目录下使用./configure-android 能够找到SDL2.0.但是编译的时候总是会报错.如图所视: 如果不编译android版,只编译linux版是不会出问题的. 解决方案 Android Studio编译时,adb报错的解决方法编译android时,遇到报错android编译报错问题