1

このAction Barよう なものを作りたいのですが 、Android SDK でサンプルを試してみましたが、複雑すぎて、この Action Bar のファイルが 8 つもあるのですか?
.java


アクションバー互換性


誰かがそれを行うためのより簡単な方法と簡単な方法を提供してくれることを願っています. 作業を行うために、これらの 8 つのファイルすべてをプロジェクトにコピーするつもりはないと思いますAction Bar

4

1 に答える 1

2

これはアプローチです。

最初に 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 に答える