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

学习tabhost 实现微博的主界面的更多相关文章

  1. delphi 一个线程和主界面的交互的演示代码

    求一个线程和主界面的交互的演示代码求一个线程和主界面的交互的演示代码.线程和主界面处于两个Unit.线程中的user中不能引用主窗口.我只是想学习一下,线程和主界面交互的方法.去网上查了好几天资料,能 ...

  2. Android学习系列(23)--App主界面实现

    在上篇文章<Android学习系列(22)--App主界面比较>中我们浅略的分析了几个主界面布局,选了一个最大众化的经典布局.今天我们就这个经典布局,用代码具体的实现它. 1.预览图先看下 ...

  3. Android学习系列(22)--App主界面比较

    本文算是一篇漫谈,谈一谈当前几个流行应用的主界面布局,找个经典的布局我们自己也来实现一个.不是为了追求到底有多难,而是为了明白我们确实需要这么做. 走个题,android的UI差异化市场依然很大,依然 ...

  4. Android应用经典主界面框架之中的一个:仿QQ (使用Fragment, 附源代码)

    备注:代码已传至https://github.com/yanzi1225627/FragmentProject_QQ 欢迎fork,如今来审视这份代码,非常多地方写的不太好,欢迎大家指正.有时间我会继 ...

  5. Winform开发主界面菜单的动态树形列表展示

    我在之前很多文章里面,介绍过Winform主界面的开发,基本上都是标准的界面,在顶部放置工具栏,中间区域则放置多文档的内容,但是在顶部菜单比较多的时候,就需要把菜单分为几级处理,如可以在顶部菜单放置一 ...

  6. 安卓开发_慕课网_Fragment实现Tab(App主界面)

    学习内容来自“慕课网” 这里用Fragment来实现APP主界面 思路: 底部横向排列4个LinearLayout,每个LinearLayout包含一个图片按钮和一个文字 1.默认显示第一个功能(微信 ...

  7. 安卓开发_慕课网_ViewPager实现Tab(App主界面)

    学习内容来自“慕课网” 网站上一共有4种方法来实现APP主界面的TAB方法 这里学习第一种 ViewPager实现Tab 布局文件有7个, 主界面acitivity.layout <Linear ...

  8. 看过《大湿教我写.net通用权限框架(1)之菜单导航篇》之后发生的事(续)——主界面

    引言 在UML系列学习中的小插曲:看过<大湿教我写.net通用权限框架(1)之菜单导航篇>之后发生的事 在上篇中只拿登录界面练练手,不把主界面抠出来,实在难受,严重的强迫症啊.之前一直在总 ...

  9. Android应用主界面底部菜单实现

    介绍 现在绝大多数主流的应用主界面,都会包含一个底部菜单,就拿腾讯的QQ与微信来说,看起来是这样的  <---我是底部菜单 原理 在很久以前,可以通过TabActivity实现相关功能,自从Fr ...

随机推荐

  1. cortexm内核 栈的8字节对齐及关键字PRESERVE8

    一.什么是栈对齐? 栈的字节对齐,实际是指栈顶指针须是某字节的整数倍.因此下边对系统栈与MSP,任务栈与PSP,栈对齐与SP对齐 这三对概念不做区分.另外下文提到编译器的时候,实际上是对编译器汇编器连 ...

  2. ImageLoader的使用

    显示本地图片 //ImageLoader使用前必须初始化 ImageLoader imageLoader = ImageLoader.getInstance(); imageLoader.init(I ...

  3. jsonp的简单实现

    jsonp: function(url, data, callback){ if( wfQuery.isFunction(data) ){ callback = data; data = {}; } ...

  4. Java与C#的比较学习

    http://www.cnblogs.com/javathread/archive/2012/08/11/2634893.html 我在大学学的是C语言,自学和选修的是C++,刚毕业也搞过几天Jsp, ...

  5. Android手机fastboot刷机命令

    先进入fastboot文件所在目录 连接硬件命令 fastboot devices 删除recover.boot,system同理 Fastboot erase recovery 重刷,boot,sy ...

  6. zabbix agent自动安装脚本

    #!/bin/bash #desc: used for autoinstall zabbix client #说明:本脚本旨在批量安装zabbix_agent,在一个服务器上放好软件和配置文件,执行本 ...

  7. JS 从一个字符串中截取两个字符串之间的字符串

    /************************************************* 函数说明:从一个字符串中截取 两个字符串之间的字符串 参数说明:src_str 原串, start ...

  8. centos 7.1搭建docker本地私有仓库返回500错误

    之前有一篇写到在ubuntu14.04系统上安装私有仓库,遇到了两个问题,本次在centos7上遇到了另外一个问题. 安装完仓库并运行registry镜像之后发现push和pull操作都会返回一个50 ...

  9. Popular Products

    Popular Products 描述 Given N lists of customer purchase, your task is to find the products that appea ...

  10. sql server 字符串替换函数REPLACE

    sql server 字符串替换函数REPLACE函数的使用 <pre name="code" class="sql">--参数1:需要替换字符的母 ...