【转】ActionBar的基本用法

原文网址:http://irtutsk.iteye.com/blog/2117707

ActionBar的组成:

[1]AppIcon:标题区,显示应用程序图标和标题,也可以自定义。

[2]ViewControl:导航区,可以设置Tab选项卡导航,Spinner下拉导航。

[3]ActionButtons:菜单区,添加菜单按钮。

[4]ActionOverflow:溢出区,显示不下的菜单按钮自动添加到这里,有Menu按键的手机不显示,只能通过Menu按键呼叫。

ActionBar的使用(兼容2.x):

使用API>18,导入Support V7包。
Java代码  收藏代码
  1. import android.support.v7.app.ActionBar;  
  2. import android.support.v7.app.ActionBarActivity;  
使当前Activity 继承 ActionBarActivity。
Java代码  收藏代码
  1. public class MainActivity extends ActionBarActivity  
获取当前ActionBar。
Java代码  收藏代码
  1. ActionBar actionBar = getSupportActionBar();  
配置ActionBar。
Java代码  收藏代码
  1. //显示ActionBar  
  2. actionBar.show();  
  3. //隐藏ActionBar  
  4. actionBar.hide();  
  5. //显示图标  
  6. actionBar.setDisplayShowHomeEnabled(true);  
  7. //显示标题  
  8. actionBar.setDisplayShowTitleEnabled(true);  
  9. //设置图标  
  10. actionBar.setIcon(R.drawable.ic_launcher);  
  11. //设置标题  
  12. actionBar.setTitle(R.string.action_bar_Title);  
  13. //允许使用图标按钮  
  14. actionBar.setHomeButtonEnabled(true);  
  15. //显示返回主界面按钮  
  16. actionBar.setHomeButtonEnabled(true);  
  17. //显示返回上一级按钮  
  18. actionBar.setDisplayHomeAsUpEnabled(true);  
  19. //允许使用自定义视图  
  20. actionBar.setDisplayShowCustomEnabled(true);  

ActionBar添加菜单:

ActionBar添加菜单的方法与Android2.x添加普通菜单的方法相同。
Java代码  收藏代码
  1. //添加菜单  
  2. @Override  
  3. public boolean onCreateOptionsMenu(Menu menu) {  
  4.     //资源文件方式添加  
  5.     getMenuInflater().inflate(R.menu.main, menu);  
  6.     //代码方式添加  
  7.     MenuItem item = menu.add(groupId, itemId, order, title)  
  8.             .setIcon(iconRes);  
  9.     MenuItemCompat.setShowAsAction(item,  
  10.             MenuItemCompat.SHOW_AS_ACTION_ALWAYS);  
  11.     return true;  
  12. }  
  13. //处理菜单项  
  14. @Override  
  15. public boolean onOptionsItemSelected(MenuItem item) {  
  16.     // Handle action bar item clicks here. The action bar will  
  17.     // automatically handle clicks on the Home/Up button, so long  
  18.     // as you specify a parent activity in AndroidManifest.xml.  
  19.     int id = item.getItemId();  
  20.     if (id == R.id.action_settings) {  
  21.         return true;  
  22.     }  
  23.     return super.onOptionsItemSelected(item);  
  24. }  

处理返回按钮。

在onOptionsItemSelected中处理MenuItem Id为home或homeasup即可。

是android.R.id.home而不是R.id.home,没有android.R.id.homeasup。

Java代码  收藏代码
  1. if (id == android.R.id.home) {  
  2.     Intent intent = new Intent(this, MainActivity.class);  
  3.     startActivity(intent);  
  4.     return true;  
  5. }  

菜单的资源文件。

Html代码  收藏代码
  1. <menu xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  3.     xmlns:tools="http://schemas.android.com/tools"  
  4.     tools:context="com.example.zhuajimazi.MainActivity" >  
  5.   
  6.     <item  
  7.         android:id="@+id/action_settings"  
  8.         android:orderInCategory="100"  
  9.         android:icon="@drawable/settings"  
  10.         android:title="@string/action_settings"  
  11.         app:showAsAction="ifRoom"/>  
  12.     <item  
  13.         android:id="@+id/action_update"  
  14.         android:orderInCategory="100"  
  15.         android:icon="@drawable/update"  
  16.         android:title="@string/action_update"  
  17.         app:showAsAction="ifRoom"/>  
  18.     <item  
  19.         android:id="@+id/action_about"  
  20.         android:orderInCategory="100"  
  21.         android:icon="@drawable/about"  
  22.         android:title="@string/action_about"  
  23.         app:showAsAction="ifRoom"/>  
  24.     <item  
  25.         android:id="@+id/action_exit"  
  26.         android:orderInCategory="100"  
  27.         android:icon="@drawable/exit"  
  28.         android:title="@string/action_exit"  
  29.         app:showAsAction="ifRoom"/>  
  30.   
  31. </menu>  
原文地址:https://www.cnblogs.com/wi100sh/p/4488016.html