阴鸦 2017-09-30 12:09 采纳率: 100%
浏览 879
已结题

android TabHost(标题不知道怎么写。。。。。。)

package com.lyf.ai.myapplication;

import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TabHost;

public class MainActivity extends TabActivity implements OnCheckedChangeListener{

/*
    声明全局变量
*/
private TabHost mTabHost;
private Intent mAIntent;
private Intent mBIntent;
private Intent mCIntent;
private Intent mDIntent;
private Intent mEIntent;

/*
    在第一次创建活动时调用。
*/
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //标记为“无标题”功能,在屏幕顶部关闭标题。
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.maintabs);
    //初始化各个tab标签对应的intent
    this.mAIntent = new Intent(this,BiddingInformationActivity.class);
    this.mBIntent = new Intent(this,BActivity.class);
    this.mCIntent = new Intent(this,CActivity.class);
    this.mDIntent = new Intent(this,DActivity.class);
    this.mEIntent = new Intent(this,MoreActivity.class);
    //为RadioGroup设置监听
    ((RadioButton) findViewById(R.id.radio_button0)).setOnCheckedChangeListener(this);
    ((RadioButton) findViewById(R.id.radio_button1)).setOnCheckedChangeListener(this);
    ((RadioButton) findViewById(R.id.radio_button2)).setOnCheckedChangeListener(this);
    ((RadioButton) findViewById(R.id.radio_button3)).setOnCheckedChangeListener(this);
    ((RadioButton) findViewById(R.id.radio_button4)).setOnCheckedChangeListener(this);

    setupIntent();
}

/*
    点击触发事件,
*/
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if(isChecked){
        switch (buttonView.getId()) {
            case R.id.radio_button0:
                this.mTabHost.setCurrentTabByTag("A_TAB");
                break;
            case R.id.radio_button1:
                this.mTabHost.setCurrentTabByTag("B_TAB");
                break;
            case R.id.radio_button2:
                this.mTabHost.setCurrentTabByTag("C_TAB");
                break;
            case R.id.radio_button3:
                this.mTabHost.setCurrentTabByTag("D_TAB");
                break;
            case R.id.radio_button4:
                this.mTabHost.setCurrentTabByTag("MORE_TAB");
                break;
        }
    }

}

/*
     为tabHost添加各个标签项
*/
private void setupIntent() {
    this.mTabHost = getTabHost();
    TabHost localTabHost = this.mTabHost;

    localTabHost.addTab(buildTabSpec("A_TAB", R.string.main_home, R.mipmap.icon_1_n, this.mAIntent));

    localTabHost.addTab(buildTabSpec("B_TAB", R.string.main_news, R.mipmap.icon_2_n, this.mBIntent));

    localTabHost.addTab(buildTabSpec("C_TAB", R.string.main_manage_date, R.mipmap.icon_3_n, this.mCIntent));

    localTabHost.addTab(buildTabSpec("D_TAB", R.string.main_friends, R.mipmap.icon_4_n, this.mDIntent));

    localTabHost.addTab(buildTabSpec("MORE_TAB", R.string.more, R.mipmap.icon_5_n, this.mEIntent));

}

/*
    自定义创建标签项的方法
     @param tag 标签标识
     @param resLabel 标签文字
     @param resIcon 标签图片
*/
private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon, final Intent content) {
    return this.mTabHost.newTabSpec(tag).setIndicator(getString(resLabel),
            getResources().getDrawable(resIcon)).setContent(content);
}

}
效果图如下:
图片说明

本人新手一 枚,代码看不懂,请求大神解释,或者给参考资料,谢谢大家的帮助!
主要问题有
(1)它是怎么默认开始页面的
(2)如果要跳转一个页面,我又应该怎么学 ,跳转页面后下面的导航栏还要存在

  • 写回答

2条回答

  • Juice_Lover 2017-10-05 07:49
    关注

    TabHost android3.0后就不在建议使用了
    现在使用 tablayout+viewpager+fragment 比较多

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题