日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 应用开发】 ActionBar 基础

發布時間:2025/6/17 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 应用开发】 ActionBar 基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者 : 萬境絕塵 (octopus_truth@163.com)

轉載請注明出處 :?http://blog.csdn.net/shulianghan/article/details/39204393



示例代碼下載 :?

-- GitHub :?https://github.com/han1202012/Octopus_ActionBar.git

-- CSDN :?http://download.csdn.net/detail/han1202012/7913297




一. ActionBar 基本操作



1. ActionBar 簡介


ActionBar 位置?: 位于老版本的標題欄位置;


ActionBar 功能簡介 :?

-- 菜單顯示 : 顯示選項菜單;

-- 回退鍵 : 程序圖標可以作為回退鍵使用;

-- 交互式 : 提供交互式 View;

-- 導航 : 類似與 Tab 導航, 可以進行 Fragment 切換;

-- 下拉導航 : 在導航的基礎上 提供下拉功能;



2. 配置文件 配置 ActionBar 啟用 和 關閉


配置文件中指定 targetSdkVersion : 在創建應用的時候, 指定的 targetSdkVersion 大于 3.0 版本, 就會默認啟用 ActionBar, 現有手機大部分都是 4.0 以上, 就不使用 supportV4 兼容了, 直接使用高版本 sdk;

-- 創建工程示例 : 注意 Theme 選擇 None, 選擇其它主題會出錯;


-- 配置文件 :?

<uses-sdkandroid:minSdkVersion="15"android:targetSdkVersion="19" />



關閉 ActionBar : 在 AndroidMainifest.xml 配置文件中, 為 <application /> 節點, 配置?android:theme 屬性;

-- 默認配置 :?android:theme="@style/AppTheme" ;

<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name" android:theme="@style/AppTheme">

-- 取消 ActionBar 配置 :?android:theme="@android:style/Theme.Holo.Dialog.NoActionBar" ;

<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name" android:theme="@android:style/Theme.Holo.Dialog.NoActionBar">

3. 使用代碼控制 ActionBar 顯示 隱藏



(1) ActionBar 相關方法


ActionBar 相關方法解析 :?

-- Activity 中獲取 ActionBar 對象 : 使用 getActionBar() 方法, 即可獲取;

-- 設置 ActionBar 顯示 : ActionBar.show() 方法;

-- 設置 ActionBar 隱藏 : ActionBar.hide() 方法;


(2) Activity 代碼示例


package cn.org.octopus.action_bar;import android.app.ActionBar; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast;public class MainActivity extends Activity {private ActionBar actionBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if (savedInstanceState == null) {/* 獲取 Fragment 管理器, 開始 Fragment 事務, 向 R.id.contaner 組件中添加一個 Fragment */getFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}actionBar = getActionBar();}/*** 自定義一個 Fragment, 該 Fragment 主要存放主界面布局*/public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {/* 加載布局文件, 初始化組件, 并返回 */View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}public void onClick(View view) {int id = view.getId();switch (id) {case R.id.actionbar_show:actionBar.show();Toast.makeText(getApplicationContext(), "顯示 ActionBar", Toast.LENGTH_LONG).show();;break;case R.id.actionbar_hide:actionBar.hide();Toast.makeText(getApplicationContext(), "隱藏 ActionBar", Toast.LENGTH_LONG).show();break;default:break;}} }

(3) 布局文件代碼示例?


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="cn.org.octopus.action_bar.MainActivity$PlaceholderFragment" ><LinearLayout android:id="@+id/actionbar_visible"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#00FF00"android:orientation="vertical"><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:text="控制 ActionBar 顯示 和 隱藏"android:textStyle="bold"android:textSize="20dp"android:layout_margin="10dp"/><LinearLayout android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Button android:id="@+id/actionbar_show"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:layout_margin="10dp"android:textStyle="bold"android:text="顯示 ActionBar"android:onClick="onClick"/><Button android:id="@+id/actionbar_hide"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:layout_margin="10dp"android:textStyle="bold"android:text="隱藏 ActionBar"android:onClick="onClick"/> </LinearLayout></LinearLayout></RelativeLayout>

(4) 執行結果





二. ActionBar 選項菜單



ActionItem 簡介 :?

-- 之前的手機 : 在老版本的手機中, 手機需要提供 MENU 按鍵, 有了 ActionBar 之后, 可以將 MENU 集成到 ActionBar 上, 就不強制手機集成 MENU 按鍵了;

-- ActionItem 實現方式 : 有兩種方式可以實現, 一種是純代碼形式, 在代碼中生成, 一種是在配置文件中配置菜單項;



1. 使用代碼控制選項菜單


MenuItem.setShowAsAction()方法 : 設備選項菜單是否顯示在 ActionBar 上;

-- SHOW_AS_ACTION_ALWAYS 參數 : 總是顯示 Menu 菜單;

-- SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW 參數 : ActionView 折疊成普通菜單;

-- SHOW_AS_ACTION_NEVER 參數 : 不顯示 Menu 菜單;

-- SHOW_AS_ACTION_IF_ROOM 參數 : 位置足夠時顯示 菜單;

-- SHOW_AS_ACTION_WITH_TEXT 參數 : 顯示 Menu 在 ActionBar 上, 并顯示菜單項文本;



2. 配置文件控制選項菜單



(1) 配置文件解析


<item /> 標簽解析 :?

-- 所處位置 : 在 menu.xml 配置文件中的 第一層, 或者 最里層;

-- <item /> 包含 <menu /> : <menu /> 表示一個菜單, 一個 <item /> 中可以有多個菜單;

-- 最里層 <item /> : 具體的每個菜單也是由 <item /> 表示的, 此時只需要指定 android:id 和 android:tittle 兩個屬性;?


<menu /> 標簽解析 : 代表一個菜單選項;

-- 所處位置 : <item /> 標簽之下, 處于配置文件第三層;

-- 子標簽 : <menu /> 標簽下 有 <group /> 子標簽;


<group /> 標簽解析 : 在 <menu /> 標簽下, 代表一組帶單選項;



(2) 配置文件示例


<menu xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"tools:context="cn.org.octopus.action_bar.MainActivity" ><itemandroid:id="@+id/action_settings"android:orderInCategory="100"android:showAsAction="never"android:title="@string/action_settings"/><!-- android:title 屬性 : 顯示名稱 android:icon 屬性 : 顯示圖標android:showAsAction 屬性 : 設置是否在 ActionBar 中顯示--><item android:title="單選菜單"android:showAsAction="always|withText|collapseActionView"android:icon="@drawable/ic_launcher"><menu><!-- android:checkableBehavior 屬性 : 設置點擊事件 --><group android:checkableBehavior="single"><!-- android:id 屬性 : 用于標識 idandroid:title 屬性 : 菜單顯示的 標題--><item android:id="@+id/menu1_item1"android:title="menu1_item1"/><item android:id="@+id/menu1_item2"android:title="menu1_item2"/><item android:id="@+id/menu1_item3"android:title="menu1_item3"/></group></menu></item><item android:id="@+id/menu3"android:title="普通菜單"android:showAsAction="always|withText"/><item android:title="默認菜單"android:showAsAction="always|withText|collapseActionView"><menu><group><item android:id="@+id/menu2_item1"android:title="menu2_item1"/><item android:id="@+id/menu2_item2"android:title="menu2_item2"/><item android:id="@+id/menu2_item3"android:title="menu2_item3"/></group></menu></item></menu>


(3) Activity 中加載菜單


@Overridepublic boolean onCreateOptionsMenu(Menu menu) {/* 加載 main.xml 菜單, 在 ActionBar 中顯示配置文件中定義的菜單內容 */getMenuInflater().inflate(R.menu.main, menu);return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {/** 點擊 menu 菜單中選項回調事件 * id 在 menu.xml 中的 <item /> 標簽中的 android:id 屬性中定義*/int id = item.getItemId();switch (id) {case R.id.menu1_item1:toast("menu1_item1");break;case R.id.menu1_item2:toast("menu1_item2");break;case R.id.menu1_item3:toast("menu1_item3");break;case R.id.menu2_item1:toast("menu2_item1");break;case R.id.menu2_item2:toast("menu2_item2");break;case R.id.menu2_item3:toast("menu2_item3");break;case R.id.menu3:toast("menu3");break;default:break;}if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}

(4) 執行效果?





三. 圖標導航



1. ActionBar 方法介紹


ActionBar 相關方法簡介 :?

-- setDisplayHomeAsUpEnable(boolean) : 設置是否將左側設置為可點擊圖標, 并在圖標上添加左箭頭;

-- setDisplayOption(int) : 設置 ActionBar 的顯示選項;

-- setDisplayShowHomeEnable(boolean) : 設置是否顯示應用程序圖標;

-- setHomeButtonEnable(boolean) : 設置是否將應用程序圖表轉換為可點擊按鈕;



2. 相關代碼


設置不顯示應用圖標并添加左箭頭 :?

actionBar = getActionBar();/* 設置將左側圖標設置成可點擊圖標, 并添加一個左箭頭 */actionBar.setDisplayHomeAsUpEnabled(true);/* 不顯示應用程序圖標 */actionBar.setDisplayShowHomeEnabled(false);


設置點擊圖表回調事件 : ActionBar 中的圖表代表的組件 id 為 android.R.id.home ;

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {/** 點擊 menu 菜單中選項回調事件 * id 在 menu.xml 中的 <item /> 標簽中的 android:id 屬性中定義*/int id = item.getItemId();switch (id) {case android.R.id.home:toast("點擊回退鍵");break;



3. 運行示例?






四. ActionBar 上添加 ActionView?



1. 代碼解析


<item /> 標簽在 xml 文件中配置 :?

--?android:actionViewClass 屬性 : 在 ActionBar 上顯示一個已定義的組件, 設置類的全路徑名稱;

--?android:actionLayout 屬性 : 設置在 ActionBar 上顯示一個布局文件;

--?android:orderInCategory屬性 : 表示菜單中的優先級, 用于 Action View 在 ActionBar 上進行排序;


代碼示例 :?

<!-- android:orderInCategory 屬性 : 表示優先級, 用于進行 item 排序 --><item android:id="@+id/search"android:title="搜索"android:orderInCategory="100"android:showAsAction="always"android:actionViewClass="android.widget.SearchView"/><item android:id="@+id/layout"android:title="layout"android:showAsAction="always"android:orderInCategory="100"android:actionLayout="@layout/layout"/>

2. 執行結果?






五. ActionBar Tab 導航



1. ActionBar 相關代碼解析


(1) ActionBar 開啟導航相關方法


開啟 Tab 導航 :?actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

-- ActionBar 有三種導航方式 : ?ActionBar.NAVIGATION_MODE_TABS ?Tab 導航,?ActionBar.NAVIGATION_MODE_LIST ?List 導航,?ActionBar.NAVIGATION_MODE_STANDARD ?普通導航;

-- 代碼示例 :?

/* 獲取 ActionBar */ActionBar actionBar = getActionBar();/* 設置 ActionBar 的導航方式* -- ActionBar.NAVIGATION_MODE_TABS : Tab 導航 * -- ActionBar.NAVIGATION_MODE_LIST : List 導航* -- ActionBar.NAVIGATION_MODE_STANDARD : 普通導航 */actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);




(2) ActionBar 添加標簽方法?


創建標簽并設置 :?

-- 創建標簽方法 : Tab tab =?actionBar.newTab();

-- 設置標簽 : tab.setText(tabName);

-- 設置 Tab 監聽器 : tab.setTabListener(listener), 監聽哪個標簽被選中, 取消選中, 釋放 動作;

-- 為 ActionBar 設置標簽 : actionBar.setTab(tab);

-- 示例代碼?:?

Tab tab1 = actionBar.newTab().setText("第一頁").setTabListener(this);Tab tab2 = actionBar.newTab().setText("第二頁").setTabListener(this);Tab tab3 = actionBar.newTab().setText("第三頁").setTabListener(this);actionBar.addTab(tab1);actionBar.addTab(tab2);actionBar.addTab(tab3);

(3) Tab 事件監聽器


實現?TabListener 接口 : 一般是 Activity 實現該接口;

--?onTabReselected() 抽象方法 : 在 標簽被選中時回調;

--?onTabUnselected() 抽象方法 : 在 標簽取消選中時回調;

--?onTabSelected() 抽象方法 : 在標簽選中時回調;


代碼示例 :?

public class TabNavigationActivity extends Activity implements TabListener {@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {Fragment fragment = new TabFragment();/* 設置參數傳遞 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, tab.getPosition() + 1);fragment.setArguments(bundle);/* 創建 Fragment 管理器 */FragmentManager manager = getFragmentManager();/* 開啟事務 */FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.holder, fragment);transaction.commit();}/*** Tab 取消選中時回調*/@Overridepublic void onTabUnselected(Tab tab, FragmentTransaction ft) {}/*** Tab 釋放時回調*/@Overridepublic void onTabReselected(Tab tab, FragmentTransaction ft) {}}

2. Fragement 創建相關代碼解析



(1) Fragment 參數傳遞


a. 創建 Fragement 對象

創建自定義的 Fragment : Fragment fragment = new TabFragment();


b. 創建 Bundle 并設置參數

創建 Bundle : Bundle bundle = new Bundle();

設置參數 :?bundle.putInt();

像 Fragement 設置參數 :?fragment.setArguments(bundle);



(2) Fragement 事務開啟并提交


獲取事務管理器 :?FragmentManager manager = getFragmentManager();

開啟事務 :?FragmentTransaction transaction = manager.beginTransaction();

執行事務 :?transaction.replace(R.id.holder, fragment);

-- R.id.Holder 參數 : 這個是 布局文件 的根標簽的?id;

-- Fragment 參數 : 要顯示的 Fragement, 將這個 Fragement 設置到 上面 id 的 ViewGroup 布局中;

提交事務 :?transaction.commit();



(3) 代碼示例


代碼示例 :?

@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {Fragment fragment = new TabFragment();/* 設置參數傳遞 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, tab.getPosition() + 1);fragment.setArguments(bundle);/* 創建 Fragment 管理器 */FragmentManager manager = getFragmentManager();/* 開啟事務 */FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.holder, fragment);transaction.commit();}

3. 自定義 Fragement 相關解析



(1) 獲取 Activity 對象


獲取方法 :?Activity activity = getActivity(), 直接調用 getActivity() 即可獲取;


用處 : 該 Activity 對象在 創建布局文件時使用;



(2) 獲取參數


參數獲取 : 在創建 Fragement 時通過 Bundle 對象傳入了參數, 可以通過調用 getBundle() 方法, 獲取 Bundle 對象;

-- 代碼示例 :?

/* 獲取從 Activity 傳入的數據 */Bundle bundle = getArguments();int tab = bundle.getInt(key);

(3) 創建 ImagView 組件


創建組件并設置參數 :?

-- 創建組件?:?ImageView imageView = new ImageView(activity);

-- 設置參數 : 創建一個?LayoutParams 對象, 并設置參數進去, 寬 高 都設置為 match_parent;

-- 代碼示例 :?

/* 設置一個充滿全屏的圖片 */ImageView imageView = new ImageView(activity);LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);imageView.setLayoutParams(layoutParams);switch (tab) {case 1:imageView.setImageResource(R.drawable.a);break;case 2:imageView.setImageResource(R.drawable.b);break;case 3:imageView.setImageResource(R.drawable.c);break;default:break;}


4. 代碼示例



(1) Activity 示例代碼


TabNavigationActivity.java 代碼 :?

package cn.org.octopus.action_bar;import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView;public class TabNavigationActivity extends Activity implements TabListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_tab);/* 獲取 ActionBar */ActionBar actionBar = getActionBar();/* 設置 ActionBar 的導航方式* -- ActionBar.NAVIGATION_MODE_TABS : Tab 導航 * -- ActionBar.NAVIGATION_MODE_LIST : List 導航* -- ActionBar.NAVIGATION_MODE_STANDARD : 普通導航 */actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);/* 設置 ActionBar 左側圖標可點擊, 添加箭頭 */actionBar.setDisplayHomeAsUpEnabled(true);Tab tab1 = actionBar.newTab().setText("第一頁").setTabListener(this);Tab tab2 = actionBar.newTab().setText("第二頁").setTabListener(this);Tab tab3 = actionBar.newTab().setText("第三頁").setTabListener(this);actionBar.addTab(tab1);actionBar.addTab(tab2);actionBar.addTab(tab3);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();switch (id) {/* 設置的點擊圖標按鈕回退 */case android.R.id.home:finish();break;default:break;}return super.onOptionsItemSelected(item);}@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {Fragment fragment = new TabFragment();/* 設置參數傳遞 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, tab.getPosition() + 1);fragment.setArguments(bundle);/* 創建 Fragment 管理器 */FragmentManager manager = getFragmentManager();/* 開啟事務 */FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.holder, fragment);transaction.commit();}/*** Tab 取消選中時回調*/@Overridepublic void onTabUnselected(Tab tab, FragmentTransaction ft) {}/*** Tab 釋放時回調*/@Overridepublic void onTabReselected(Tab tab, FragmentTransaction ft) {}public static class TabFragment extends Fragment{public static final String key = "key";@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {/* 獲取該 Fragment 被嵌入的 上下文對象 */Activity activity = getActivity();/* 獲取從 Activity 傳入的數據 */Bundle bundle = getArguments();int tab = bundle.getInt(key);/* 設置一個充滿全屏的圖片 */ImageView imageView = new ImageView(activity);LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);imageView.setLayoutParams(layoutParams);switch (tab) {case 1:imageView.setImageResource(R.drawable.a);break;case 2:imageView.setImageResource(R.drawable.b);break;case 3:imageView.setImageResource(R.drawable.c);break;default:break;}return imageView;}}}

(2) 布局文件代碼


activity_tab.xml 代碼 :?

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/holder"android:layout_width="match_parent"android:layout_height="match_parent" />

(3) 執行效果?





六. ActionBar 實現下拉式導航



1. ActionBar 相關方法


a .設置 List 導航方式 ?

設置方法 : actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

代碼示例 :?

/* 設置 ActionBar 的導航方式* -- ActionBar.NAVIGATION_MODE_TABS : Tab 導航 * -- ActionBar.NAVIGATION_MODE_LIST : List 導航* -- ActionBar.NAVIGATION_MODE_STANDARD : 普通導航 */actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

b. 創建一個 SpinnerAdapter?

適配器創建 : 使用 ArrayAdapter 適配器, 傳入 上下文對象, 適配器條目布局, 文字顯示組件id, String數組;

代碼示例 :?

/* 設置標題 */String[] strs = new String[]{"第一頁", "第二頁", "第三頁"};/* 設置 List導航 適配器 */SpinnerAdapter adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, strs);

c. 設置 List 回調接口

接口作用 : 當選中一個條目之后, 回調接口中的方法;

-- 接口名稱 :?ActionBar.OnNavigationListener;

-- 抽象方法 :?public boolean onNavigationItemSelected(int itemPosition, long itemId);

-- 代碼示例 :?

public class ListNavigationActivity extends Activity implements ActionBar.OnNavigationListener {@Overridepublic boolean onNavigationItemSelected(int itemPosition, long itemId) {/* 創建 Fragement */Fragment fragment = new TabFragment();/* 設置 Fragement 參數 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, itemPosition + 1);fragment.setArguments(bundle);/* 置換 Fragement */FragmentManager manager = getFragmentManager();FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.list_holder, fragment);transaction.commit();return true;}}

d. 將適配器和回調接口設置給 ActionBar

/* 為 ActionBar 設置適配器和回調接口 */actionBar.setListNavigationCallbacks(adapter, this);

2. 代碼示例



(1) Activity 示例


ListNavigationActivity.java 代碼示例 :?

package cn.org.octopus.action_bar;import android.app.ActionBar; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.MenuItem; import android.widget.ArrayAdapter; import android.widget.SpinnerAdapter;public class ListNavigationActivity extends Activity implements ActionBar.OnNavigationListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_list);/* 獲取 ActionBar */ActionBar actionBar = getActionBar();/* 設置 ActionBar 的導航方式* -- ActionBar.NAVIGATION_MODE_TABS : Tab 導航 * -- ActionBar.NAVIGATION_MODE_LIST : List 導航* -- ActionBar.NAVIGATION_MODE_STANDARD : 普通導航 */actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);/* 設置 ActionBar 左側圖標可點擊, 添加箭頭 */actionBar.setDisplayHomeAsUpEnabled(true);/* 設置標題 */String[] strs = new String[]{"第一頁", "第二頁", "第三頁"};/* 設置 List導航 適配器 */SpinnerAdapter adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, strs);/* 為 ActionBar 設置適配器和回調接口 */actionBar.setListNavigationCallbacks(adapter, this);}@Overridepublic boolean onNavigationItemSelected(int itemPosition, long itemId) {/* 創建 Fragement */Fragment fragment = new TabFragment();/* 設置 Fragement 參數 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, itemPosition + 1);fragment.setArguments(bundle);/* 置換 Fragement */FragmentManager manager = getFragmentManager();FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.list_holder, fragment);transaction.commit();return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();switch (id) {/* 設置的點擊圖標按鈕回退 */case android.R.id.home:finish();break;default:break;}return super.onOptionsItemSelected(item);} }

(2) 執行效果





作者?:?萬境絕塵?(octopus_truth@163.com)

轉載請注明出處?:?http://blog.csdn.net/shulianghan/article/details/39204393



示例代碼下載?:?

--?GitHub?:?https://github.com/han1202012/Octopus_ActionBar.git

--?CSDN?:?http://download.csdn.net/detail/han1202012/7913297

總結

以上是生活随笔為你收集整理的【Android 应用开发】 ActionBar 基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。