1

我想做一个Action Bar这样 的,
我在 Android sdk 中尝试过这个示例,但它太复杂.java了,这个 Action Bar 有 8 个文件?


ActionBarCompat


我希望有人可以为我提供更简单的方法和更简单的方法。因为我认为我不会为了制作Action Bar作品而将所有这 8 个文件复制到我的项目中。

4

1 回答 1

2

这是一种方法。

Beginns 在您的 res/menu 文件夹 action_bar_menu.xml 中添加一个简单的布局

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_one"
        android:icon="@drawable/icon1.png"
        android:showAsAction="always"
        android:title="One">
    </item>
    <item
        android:id="@+id/action_two"
        android:icon="@drawable/icon2.png"
        android:showAsAction="always"
        android:title="Two">
    </item>

</menu>

在你的活动中

 @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ActionBar actionBar = getActionBar();
    actionBar.setTitle("your title"); 
    // add the custom view to the action bar
    //actionBar.setCustomView(R.layout.actionbar_view);

    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM
        | ActionBar.DISPLAY_SHOW_HOME);
  }


 @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      getMenuInflater().inflate(R.menu.action_bar_menu, menu);
      return true;
   }

   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
      case R.id.action_one:
         //put your business logic here
         break;
      case R.id.action_two:
         //put your business logic here
         break;
     case android.R.id.home:
        //put your business logic here
     break;
      default:
         // Nothing to do here 
      }
      return true;
   }
于 2013-03-09T12:30:50.977 回答