qq_39438539 2020-02-12 21:57 采纳率: 0%
浏览 2029

Android studio想要从登陆界面跳转到这个界面会闪退,求解决,这个界面的代码有什么问题吗,但是并没有报错

图片说明
package com.example;

import android.app.TabActivity;

import android.content.Intent;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import com.example.AskHelp.SystemHelp;
import com.example.BloodPressure.BloodPressureActivity;
import com.example.BloodSugar.BloodSugarActivity;
import com.example.FileManager.FileManagerActivity;
import com.example.HeartAuscultation.HeartListen;
import com.geniuseoe.demo.R;

/**

  • 功能描述:将系统的各个功能模块添加在TabHost选项卡中,实现在各选项卡之间手动切换以显示不同模块的内容

  • */
    @SuppressWarnings("deprecation")
    public class MainTabHost extends TabActivity
    {
    private TabHost tabHost;
    private RadioGroup radioGroup;

    // Tab选项卡的图标数组
    private int[] tabIconViewArray =
    { R.drawable.tab_icon1, R.drawable.tab_icon2, R.drawable.tab_icon3,
    R.drawable.tab_icon4, R.drawable.tab_icon5 };

    // Tab选项卡的文字数组
    private String[] tabNameTextArray =
    { "档案", "血压", "血糖", "听诊", "帮助" };

    // Tab选项卡中的内容(类)数组
    private Class[] tabContentClassArray =
    { FileManagerActivity.class, BloodPressureActivity.class,
    BloodSugarActivity.class, HeartListen.class, SystemHelp.class };

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_tab_host);

    // 为每一个选项卡设置按钮、图标、文字和内容,将Tab按钮添加进Tab选项卡中
    TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);
    

    for (int i = 0; i < tabContentClassArray.length; i++) {
    TabSpec tabSpec = tabHost.newTabSpec(tabNameTextArray[i])
    .setIndicator(tabNameTextArray[i])
    .setContent(getTabItemIntent(i));
    tabHost.addTab(tabSpec);
    }
    initData();
    }

    // 对选项卡上的每个按钮进行监听,以实现模块的切换
    private void initData()
    {
    radioGroup = (RadioGroup) findViewById(R.id.main_radiogroup);
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
    {
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId)
    {
    switch (checkedId)
    {
    case R.id.RadioButton0:
    tabHost.setCurrentTabByTag(tabNameTextArray[0]);
    break;
    case R.id.RadioButton1:
    tabHost.setCurrentTabByTag(tabNameTextArray[1]);
    break;
    case R.id.RadioButton2:
    tabHost.setCurrentTabByTag(tabNameTextArray[2]);
    break;
    case R.id.RadioButton3:
    tabHost.setCurrentTabByTag(tabNameTextArray[3]);
    break;
    case R.id.RadioButton4:
    tabHost.setCurrentTabByTag(tabNameTextArray[4]);
    break;

            }
        }
    });
    ((RadioButton) radioGroup.getChildAt(0)).toggle();
    

    }

    // 给Tab选项卡设置Activity内容,并且将LoginActivity传入的swapUsername数据转让每个Intent携带分发给每个Tab选项
    private Intent getTabItemIntent(int index)
    {
    Bundle swapData = new Bundle();
    swapData.putString("swapUsername", this.getBundleData());
    Intent intent = new Intent(this, tabContentClassArray[index]);
    intent.putExtras(swapData);
    return intent;
    }

    // 获取启动该MainTabHostAcitivity的Intent,传入Intent携带的 username数据
    public String getBundleData()
    {
    Intent intent = getIntent();
    Bundle data = intent.getExtras();
    String swapData = data.getString("username").toString();
    return swapData;
    }
    }


  • 写回答

2条回答

  • SemiraChen 2020-02-13 15:24
    关注

    Attempt to get length of array 。。。数组为空的原因吧。 检查一下tabContentClassArray 是否为空,打印一下。。

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab用simulink求解一个二阶微分方程
  • ¥30 matlab解优化问题代码
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究
  • ¥30 软件自定义无线电该怎样使用
  • ¥15 R语言mediation包做中介分析,直接效应和间接效应都很小,为什么?