本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址

https://www.baiydu.com

这周比较闲,计划系统的学习一下android开发,我本是一名IOS程序员,对手机开发还是有自己的一套思路的, 固这套思路用到我当前学android上了,先选择从Main页面的tabbar部分代码入手, Android框架布局方式大致分两种, TabActivity+TabHost+Activity,这种方式已过期, 另一种就是 FragmentActivity+FragmentTabHost+Fragment这种方式是当前最新的方式,也是google推荐使用方式,那么我当然选第二种方式了,于是就在AndroidBus找关于FragmentActivty布局的案例,幸苦了大半天终于找到一个满意的,研究了下代码,并不难,而且比第一种布局方式简单。

下面我贴这部分代码出来:

  1. public class MainTabActivity extends FragmentActivity{
  2. //定义FragmentTabHost对象
  3. private FragmentTabHost mTabHost;
  4.  
  5. //定义一个布局
  6. private LayoutInflater layoutInflater;
  7.  
  8. //定义数组来存放Fragment界面 下面数组中的成员其实都是 Fragment 相当于 TabActivity中的Activity(就是一个页面)
  9. private Class fragmentArray[] = {FragmentPage1.class,FragmentPage2.class,FragmentPage3.class,FragmentPage4.class,FragmentPage5.class};
  10.  
  11. //定义数组来存放按钮图片
  12. private int mImageViewArray[] = {R.drawable.tab_home_btn,R.drawable.tab_message_btn,R.drawable.tab_selfinfo_btn,
  13. R.drawable.tab_square_btn,R.drawable.tab_more_btn};
  14.  
  15. //Tab选项卡的文字
  16. private String mTextviewArray[] = {"首页", "消息", "好友", "广场", "更多"};
  17. public void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.main_tab_layout);
  20.  
  21. initView();
  22. }
  23.  
  24. /**
  25. * 初始化组件
  26. */
  27. private void initView(){
  28. //实例化布局对象
  29. /*在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。
  30. 不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;
  31. 而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。*/
  32.  
  33. layoutInflater = LayoutInflater.from(this);
  34. /*就是把指定的布局资源注射到指定的容器*/
  35.  
  36. //实例化TabHost对象,得到TabHost
  37. mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
  38. //R.id.realtabcontent 这里是一个FrameLayout标签
  39. mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
  40.  
  41. //得到fragment的个数
  42. int count = fragmentArray.length;
  43.  
  44. for(int i = 0; i < count; i++){
  45. //为每一个Tab按钮设置图标、文字和内容
  46. TabSpec tabSpec = mTabHost.newTabSpec(mTextviewArray[i]).setIndicator(getTabItemView(i));
  47. //将Tab按钮添加进Tab选项卡中
  48. mTabHost.addTab(tabSpec, fragmentArray[i], null);
  49. //设置Tab按钮的背景
  50. mTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_background);
  51. }
  52. }
  53.  
  54. /**
  55. * 给Tab按钮设置图标和文字
  56. */
  57. private View getTabItemView(int index){
  58. //LayoutInflater是用来找res/layout/下的xml布局文件
  59. View view = layoutInflater.inflate(R.layout.tab_item_view, null);
  60.  
  61. ImageView imageView = (ImageView) view.findViewById(R.id.imageview);
  62. imageView.setImageResource(mImageViewArray[index]);
  63.  
  64. TextView textView = (TextView) view.findViewById(R.id.textview);
  65. textView.setText(mTextviewArray[index]);
  66.  
  67. return view;
  68. }
  69. }

  

本人创业做的一款androidApp, 下载量已经有2000多万,各种当前热门的网络手机奖励红包全部集成,另外还有热门电影和淘宝高额优惠券!很适合各类型的用户。

 

android FragmentActivity+FragmentTabHost+Fragment框架布局的更多相关文章

  1. [Android] Android 使用 FragmentTabHost + Fragment 实现 微信 底部菜单

    Android 使用 FragmentTabHost + Fragment 实现 微信 底部菜单 利用FragmentTabHost实现底部菜单,在该底部菜单中,包括了4个TabSpec,每个TabS ...

  2. Android FragmentActivity 嵌套 Fragment 调用startActivityForResult返回的requestCode错误

    Android FragmentActivity 嵌套 Fragment 调用startActivityForResult返回的requestCode错误 此时,要在调用startActivityFo ...

  3. Android用户界面设计:框架布局(转)

    摘要:框架布局是Android开发者组织视图控件最简单和最有效的布局之一.通过本文,你将学到所有关于框架布局的知识,它们主要用来在屏幕上组织特别的或重叠的视图控件.使用得当的话,很多有趣的Androi ...

  4. Android -- FragmentActivity添加Fragment的序列图

    FragmentActivity添加Fragment的序列图

  5. Android FragmentActivity 给Fragment传值

    1.Fragment给Activity传值 定义一个在fragment 中 定义interface 监听器,让activity实现,并将activity的引用传递给fragment.即setListe ...

  6. Android典型界面设计——FragmentTabHost+Fragment实现底部tab切换

    一.问题描述 在上次博文中,我们使用RadioGroup+ViewPage+Fragmen实现了顶部滑动导航(查看文章:http://www.cnblogs.com/jerehedu/p/460759 ...

  7. Android开发 ---Fragment片段布局

    前言 Fragment想必大家不陌生吧,在日常开发中,对于Fragment的使用也很频繁,现在主流的APP中,基本的架构也都是一个主页,然后每个Tab项用Fragment做布局,不同选项做切换,使用起 ...

  8. android 开发 碎片Fragment布局例子(用按键切换碎片布局)

    实现思路: 1.写一个父类布局,里面写一个按键和一个帧布局(用于给Fragment布局后续替代) 2.写3个子布局,并且在写3个class继承Fragment布局 3.在MainActivity的cl ...

  9. Android笔记(九) Android中的布局——框架布局

    框架布局没有任何定位方式,所有的控件都会摆放在布局的左上角. 代码示例: framelayout.xml <?xml version="1.0" encoding=" ...

随机推荐

  1. fildder 使用方法汇总

    作为网络开发人员,怎能不使用一些抓包工具呢?fildder是个不错的选择. 不过,一般情况下,我们往往使用浏览器自带的控制台的[网络]选项就可以达到查看数据的通信情况了,当然,一些浏览器不容易捕捉的事 ...

  2. oracle 中 rownum 和 row_number()

    简单的介绍下oracle 中rownum 和 row_number() 使用,实例演示. 参照:http://www.cnblogs.com/zjrstar/archive/2006/08/31/49 ...

  3. [转]Java并发编程:Lock

    链接: http://www.cnblogs.com/dolphin0520/p/3923167.html

  4. SSIS 数据输出列因为字符截断而失败

    在数据源组件中,如果存在字符串类型的数据列,那么可能会存在,因为字符类型的长度不匹配,导致字符数据被截断的问题. SSIS报错信息:“Text was truncated or one or more ...

  5. 10034 - Freckles 克鲁斯克尔最小生成树!~

    /* 10034 - Freckles 克鲁斯克尔最小生成树!- */ #include<iostream> #include<cstdio> #include<cmat ...

  6. LeetCode:Ransom Note_383

    LeetCode:Ransom Note [问题再现] Given
 an 
arbitrary
 ransom
 note
 string 
and 
another 
string 
contai ...

  7. 学习RxJS:Cycle.js

    原文地址:http://www.moye.me/2016/06/16/learning_rxjs_part_two_cycle-js/ 是什么 Cycle.js 是一个极简的JavaScript框架( ...

  8. 初探JavaScript(二)——JS如何动态操控HTML

    除去五一三天,我已经和<JavaScript Dom编程艺术>磨合了六天,第一印象很好.慢慢的,我发现这是一块排骨,除了肉还有骨头.遇到不解的地方就会多看几遍,实在不懂的先跳过,毕竟,初次 ...

  9. 《HelloGitHub月刊》第05期

    <HelloGitHub>第05期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 欢迎各路人士加入本项目,丰富月刊的内容,也可以直接在Issue(需要登录gi ...

  10. Windows Azure Cloud Service (42) 使用Azure In-Role Cache缓存(1)Co-located Role

    <Windows Azure Platform 系列文章目录> Update 2016-01-12 https://azure.microsoft.com/zh-cn/documentat ...