码迷,mamicode.com
首页 > 移动开发 > 详细

Android ActionBar详解(三):ActionBar实现切换Tabs标签

时间:2014-11-14 12:07:43      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:android   http   io   ar   sp   java   strong   文件   div   

实现切换Tabs标签;

  

 Activity代码:  

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


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

 

 

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


布局文件action_bar_tab_content.xml;

 

< ?xml version="1.0" encoding="utf-8"?>  

  1. < TextView xmlns:android="http://schemas.android.com/apk/res/android"  
  2.   
  3. android:id="@+id/text"  
  4. android:layout_width="wrap_content"  
  5. android:layout_height="wrap_content" /> 

Android ActionBar详解(三):ActionBar实现切换Tabs标签

标签:android   http   io   ar   sp   java   strong   文件   div   

原文地址:http://www.cnblogs.com/Free-Thinker/p/4096731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!