实现切换Tabs标签;

Activity代码:

  1. public class ActionBarTabs extends Activity {
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.action_bar_tabs);
  6. }
  7. public void onAddTab(View v) {
  8. final ActionBar bar = getActionBar();
  9. final int tabCount = bar.getTabCount();
  10. final String text = "Tab " + tabCount;
  11. bar.addTab(bar.newTab().setText(text)
  12. .setTabListener(new TabListener(new TabContentFragment(text))));
  13. }
  14. public void onRemoveTab(View v) {
  15. final ActionBar bar = getActionBar();
  16. bar.removeTabAt(bar.getTabCount() - 1);
  17. }
  18. public void onToggleTabs(View v) {
  19. final ActionBar bar = getActionBar();
  20. if (bar.getNavigationMode() == ActionBar.NAVIGATION_MODE_TABS) {
  21. bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
  22. bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE, ActionBar.DISPLAY_SHOW_TITLE);
  23. } else {
  24. bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
  25. bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
  26. }
  27. }
  28. public void onRemoveAllTabs(View v) {
  29. getActionBar().removeAllTabs();
  30. }
  31. private class TabListener implements ActionBar.TabListener {
  32. private TabContentFragment mFragment;
  33. public TabListener(TabContentFragment fragment) {
  34. mFragment = fragment;
  35. }
  36. public void onTabSelected(Tab tab, FragmentTransaction ft) {
  37. ft.add(R.id.fragment_content, mFragment, mFragment.getText());
  38. }
  39. public void onTabUnselected(Tab tab, FragmentTransaction ft) {
  40. ft.remove(mFragment);
  41. }
  42. public void onTabReselected(Tab tab, FragmentTransaction ft) {
  43. Toast.makeText(ActionBarTabs.this, "Reselected!", Toast.LENGTH_SHORT).show();
  44. }
  45. }
  46. private class TabContentFragment extends Fragment {
  47. private String mText;
  48. public TabContentFragment(String text) {
  49. mText = text;
  50. }
  51. public String getText() {
  52. return mText;
  53. }
  54.   
  55. @Override
  56. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  57. Bundle savedInstanceState) {
  58. View fragView = inflater.inflate(R.layout.action_bar_tab_content, container, false);
  59. TextView text = (TextView) fragView.findViewById(R.id.text);
  60. text.setText(mText);
  61. return fragView;
  62. }
  63. }
  64. }

涉及的布局文件action_bar_tabs.xml代码为:

  1. < ?xml version="1.0" encoding="utf-8"?>
  2. < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. < FrameLayout android:id="@+id/fragment_content"
  7. android:layout_width="match_parent"
  8. android:layout_height="0dip"
  9. android:layout_weight="1" />
  10. < LinearLayout android:layout_width="match_parent"
  11. android:layout_height="0dip"
  12. android:layout_weight="1"
  13. android:orientation="vertical">
  14. < Button android:id="@+id/btn_add_tab"
  15. android:layout_width="wrap_content"
  16. android:layout_height="wrap_content"
  17. android:text="@string/btn_add_tab"
  18. android:onClick="onAddTab" />
  19. < Button android:id="@+id/btn_remove_tab"
  20. android:layout_width="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:text="@string/btn_remove_tab"
  23. android:onClick="onRemoveTab" />
  24. < Button android:id="@+id/btn_toggle_tabs"
  25. android:layout_width="wrap_content"
  26. android:layout_height="wrap_content"
  27. android:text="@string/btn_toggle_tabs"
  28. android:onClick="onToggleTabs" />
  29. < Button android:id="@+id/btn_remove_all_tabs"
  30. android:layout_width="wrap_content"
  31. android:layout_height="wrap_content"
  32. android:text="@string/btn_remove_all_tabs"
  33. android:onClick="onRemoveAllTabs" />
  34. < /LinearLayout>
  35. < /LinearLayout>

布局文件action_bar_tab_content.xml;

    1. < ?xml version="1.0" encoding="utf-8"?>
    2. < TextView xmlns:android="http://schemas.android.com/apk/res/android"
    3. android:id="@+id/text"
    4. android:layout_width="wrap_content"
    5. android:layout_height="wrap_content" />
【JAVA】鉴于plaincopy

Android ActionBar详解(三):ActionBar实现切换Tabs标签的更多相关文章

  1. Android ActionBar详解(三)--->ActionBar的Home导航功能

    FirstActivity如下: package cc.testsimpleactionbar2; import android.os.Bundle; import android.app.Activ ...

  2. (转)android Fragments详解三:实现Fragment的界面

    为fragment添加用户界面 fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中.    一个 要为fragment提供layo ...

  3. 【转】Android编译系统详解(三)——编译流程详解

    原文网址:http://www.cloudchou.com/android/post-276.html 本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 1.概述 编译Androi ...

  4. Android Fragment详解(三): 实现Fragment的界面

    为fragment添加用户界面: Fragment一般作为activity的用户界面的一部分,把它自己的layout嵌入到activity的layout中. 一个 要为fragment提供layout ...

  5. Android 布局详解 -三表格布局(TableLayout)以及重要属性

              TableLayout跟TableRow 是一组搭配应用的布局,TableLayout置底,TableRow在TableLayout的上方,而Button.TextView等控件就 ...

  6. Android Loader详解三:重启与回调

    重启装载器 当你使用initLoader()时,如果指定ID的装载器已经存在,则它使用这个装载器.如果不存在呢,它将创建一个新的.但是有时你却是想丢弃旧的然后开始新的数据. 要想丢弃旧数据,你应使用r ...

  7. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  8. Android 之窗口小部件详解(三)  部分转载

    原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...

  9. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

随机推荐

  1. Jenkins学习之——(1)Jenkins的安装与配置

    1.最近公司要求做自动化部署,于是自学了jenkins.这个参考书很少,网上的文章也讲得很模糊,于是打算把自己学习东西记下来,希望对大家有所帮助. 一.jenkins的安装 到jenkins官网(ht ...

  2. POJ3104 Drying(二分查找)

    POJ3104 Drying 这个题由于题目数据比较大(1 ≤ ai ≤ 109),采用贪心的话肯定会超时,自然就会想到用二分. 设C(x)为true时表示所用时间为X时,可以把所有的衣服都烘干或者自 ...

  3. uva 846 - Steps

    找出步數與距離的關係即可得解. 0步最多能抵達的距離是0 1步最多能抵達的距離是1(1) 2步最多能抵達的距離是2(1 1) 3步最多能抵達的距離是4(1 2 1) 4步最多能抵達的距離是6(1 2 ...

  4. web标准(复习)--2 列布局

    今天我们开始学习一列布局,包含以下几种形式: 1.一列固定宽度 2.一列固定宽度居中 3.一列自适应宽度 4.一列自适应宽度居中 5.一列二至多块布局 前一节我们回顾了xhtml基础和css基础部分, ...

  5. CSAPP--虚拟存储器

    虚拟存储器 虚拟存储器(VM)是对主存的一种抽象概念.是硬件一场,硬件地址翻译,贮存,磁盘文件和内核软件的完美交互.他为每个进程提供了一个大的,一致的和私有的地址空间. 它将贮存堪称一个存储在磁盘上的 ...

  6. sqlachemy 使用实例

    sqlachemy 是python中关于sql的ORM,他的存在可以消除底层sql引擎的差异,同事也避免了复杂繁琐的sql语句,因此我们在比较大的应用时常使用它,下面是我写的一个例子 #!/usr/b ...

  7. My advice to young people - Donald Knuth [video]

    http://www.youtube.com/watch?v=75Ju0eM5T2c I took a note of what knuth said in the video. 1. Don't d ...

  8. ServletConfig对象 【通过此对象获取到web.xml中的信息】

    用途:       1)想让当前的Servlet读取一些在web.xml文件配置的初始化参数时,                      可以使用ServletConfig对象,他是Servlet运 ...

  9. 将某个Qt4项目升级到Qt5遇到的问题(13条方法)

    本文转载自http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87 一.将某个QT4项目改成QT5遇到的问题 该Qt4项目以前是使用Qt4.7 ...

  10. 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证

    原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证 chsakell分享了前端使用AngularJS,后端使用ASP. ...