zoukankan      html  css  js  c++  java
  • 学习tabhost 实现微博的主界面

    2014-05-27 吴文付

    微博的主界面还是很漂亮的,我们这里来熟悉下tabhost的使用,

    网上资料很多,主要参考了:http://blog.csdn.net/shulianghan/article/details/18233209

    写的很好。

    我的主要工作就是看了该文章,写了一个演示。演示参考了 小巫微博的代码。

    代码如下:

    package cn.wuwenfu.layoutdemo;
    
    /*
     * 2014-05-27 
     * 主界面的布局Ok
     * 
     * */
    
    import com.example.layoutdemo.R;
    
    
    
    
    import android.app.TabActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.RadioButton;
    import android.widget.RadioGroup;
    import android.widget.TabHost;
    import android.widget.RadioGroup.OnCheckedChangeListener;
    import android.widget.TabHost.TabSpec;
    
    /**
     * TabActivity已经放弃。替代品是Fragment 
     * @author Administrator
     *
     */
    @SuppressWarnings("deprecation")
    public class MainActivity extends TabActivity {
        
        public static TabHost mTabhost;
        public static final String TAB_HOME = "TabHome";
        public static final String TAB_MSG = "TabMsg";
        public static final String TAB_SELF = "TabSelfInfo";
        public static final String TAB_DISCOVE = "TabDiscove";
        public static final String TAB_MORE = "TabMore";
        
        public static RadioGroup indexGroup;
        public static RadioButton radio_button0;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            //设置无标题,需要注意位置,在布局文件之前
            requestWindowFeature(getWindow().FEATURE_NO_TITLE);
            
            setContentView(R.layout.mainactivity);
            
            
            radio_button0 = (RadioButton) this.findViewById(R.id.tabbar_home);
            radio_button0.setChecked(true); // 设置首页按钮默认是按下状态
            
            // 获取TabHost
            mTabhost = (TabHost) findViewById(android.R.id.tabhost); 
            
            // 设定标签、制定一个标签作为选项卡指示符
            TabSpec tabSpec1 = mTabhost.newTabSpec(TAB_HOME).setIndicator(TAB_HOME);
            // 指定一个加载activity的Intent对象作为选项卡内容
            tabSpec1.setContent(new Intent(MainActivity.this, Home.class));
            mTabhost.addTab(tabSpec1); // 添加第一个子页
            
            TabSpec tabSpec2 = mTabhost.newTabSpec(TAB_MSG).setIndicator(TAB_MSG);
            tabSpec2.setContent(new Intent(MainActivity.this, Message.class));
            mTabhost.addTab(tabSpec2); // 添加第二个子页
    
            TabSpec tabSpec3 = mTabhost.newTabSpec(TAB_SELF).setIndicator(TAB_SELF);
            tabSpec3.setContent(new Intent(MainActivity.this, SelfInfo.class));
            mTabhost.addTab(tabSpec3); // 添加第三个子页
    
            TabSpec tabSpec4 = mTabhost.newTabSpec(TAB_DISCOVE).setIndicator(
                    TAB_DISCOVE);
            tabSpec4.setContent(new Intent(MainActivity.this, SearchInfo.class));
            mTabhost.addTab(tabSpec4); // 添加第四个子页
    
            TabSpec tabSpec5 = mTabhost.newTabSpec(TAB_MORE).setIndicator(TAB_MORE);
            tabSpec5.setContent(new Intent(MainActivity.this, More.class));
            mTabhost.addTab(tabSpec5); // 添加第五个子页
            
            
            
            
            
            
            indexGroup = (RadioGroup) this.findViewById(R.id.main_radio);
    
            // 实现RadioGroup的子选项点击监听
            indexGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) {
                    switch (checkedId) {
                    case R.id.tabbar_home: // 首页
                        System.out.println("点击了首页");
                        mTabhost.setCurrentTabByTag(TAB_HOME);
                        break;
                    case R.id.tabbar_message:// 信息
                        mTabhost.setCurrentTabByTag(TAB_MSG);
                        break;
                    case R.id.tabbar_me: // 个人资料
                        mTabhost.setCurrentTabByTag(TAB_SELF);
                        break;
                    case R.id.tabbar_discove: // 发现
                        mTabhost.setCurrentTabByTag(TAB_DISCOVE);
                        break;
                    case R.id.tabbar_more: // 更多
                        mTabhost.setCurrentTabByTag(TAB_MORE);
    
                    }
                }
            });
            
            
        }
        
    
    }
    主界面代码
    package cn.wuwenfu.layoutdemo;
    
    /*
     * 
     * 简单的模拟首页
     * 
     * */
    
    import com.example.layoutdemo.R;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class Home extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            
            setContentView(R.layout.home);
            
            
            
        }
        
        
    
    }
    首页

    其他的界面都和首页相同,只是更换了内容。

    几个注意点:我写的代码里,没有使用tabWidget .因为它太丑陋了。采用的是单选按钮

    效果图

    工程的地址: http://download.csdn.net/detail/douniwan123654/7408051

    QQ:540045865 热爱生活,热爱编程。
  • 相关阅读:
    书签
    jQueryUI Plugin TableSorter的2个widget扩展
    CSS之关于clearfix--清除浮动
    C#中的is关键字原来会做null检查
    jQuery UI 控件之Slider
    延长Nodejs HTTP 的连接时长
    Nodejs的Promise库
    jQuery的选择器中的通配符
    SharePoint Server 2010 中的基本任务
    ajax浅析---ScriptManagerProxy
  • 原文地址:https://www.cnblogs.com/jsRunner/p/3755226.html
Copyright © 2011-2022 走看看