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

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

public class MainTabActivity extends FragmentActivity{//定义FragmentTabHost对象private FragmentTabHost mTabHost;//定义一个布局private LayoutInflater layoutInflater;//定义数组来存放Fragment界面  下面数组中的成员其实都是 Fragment 相当于 TabActivity中的Activity(就是一个页面)private Class fragmentArray[] = {FragmentPage1.class,FragmentPage2.class,FragmentPage3.class,FragmentPage4.class,FragmentPage5.class};//定义数组来存放按钮图片private int mImageViewArray[] = {R.drawable.tab_home_btn,R.drawable.tab_message_btn,R.drawable.tab_selfinfo_btn, R.drawable.tab_square_btn,R.drawable.tab_more_btn};//Tab选项卡的文字private String mTextviewArray[] = {"首页", "消息", "好友", "广场", "更多"};public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main_tab_layout);                initView();    } /** * 初始化组件 */private void initView(){//实例化布局对象  /*在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。      不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;      而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。*/layoutInflater = LayoutInflater.from(this);/*就是把指定的布局资源注射到指定的容器*///实例化TabHost对象,得到TabHostmTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);//R.id.realtabcontent 这里是一个FrameLayout标签mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);//得到fragment的个数int count = fragmentArray.length;for(int i = 0; i < count; i++){//为每一个Tab按钮设置图标、文字和内容TabSpec tabSpec = mTabHost.newTabSpec(mTextviewArray[i]).setIndicator(getTabItemView(i));//将Tab按钮添加进Tab选项卡中mTabHost.addTab(tabSpec, fragmentArray[i], null);//设置Tab按钮的背景mTabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.selector_tab_background);}}/** * 给Tab按钮设置图标和文字 */private View getTabItemView(int index){//LayoutInflater是用来找res/layout/下的xml布局文件View view = layoutInflater.inflate(R.layout.tab_item_view, null);ImageView imageView = (ImageView) view.findViewById(R.id.imageview);imageView.setImageResource(mImageViewArray[index]);TextView textView = (TextView) view.findViewById(R.id.textview);textView.setText(mTextviewArray[index]);return view;}}

  

更多相关文章

  1. android实操--练习1
  2. 自定义android的tab样式 《》
  3. Android之appWidget按钮事件
  4. Android实现数据存储技术 de 五种方式
  5. Android(安卓)Studio使用教程(一)
  6. android LayoutInflater.inflate()的参数及其用法
  7. Android中launchMode模式详解
  8. Android(安卓)ListView中添加不同的多种布局
  9. 【Android】RecyclerView

随机推荐

  1. sql ntext数据类型字符替换实现代码
  2. sql 自定义百分比转换小数函数代码
  3. 分享SQL Server删除重复行的6个方法
  4. 合并SQL脚本文件的方法分享
  5. 数据库中identity字段不必是系统产生的唯
  6. SQLServer 镜像功能完全实现
  7. SQL查询入门(中篇)
  8. 使用sp_xml_preparedocument处理XML文档
  9. SQL查询入门(上篇) 推荐收藏
  10. SqlServer表死锁的解决方法分享