2013-04-13 7 views
5

アクションバーの上部に「Add Item」ボタンを追加しようとしています。 (アプリケーションのアイコンとタイトルの右側に)。既にタブとメニューを持っているときに上部のアクションバーに「Add Button」を追加する

アクションバーのすぐ下に、2つのタブがあり、その間にスワイプできます。また、設定メニュー用に定義されたメニューXMLファイルもあります。

私は、アクションバーもメニューXMLを使用すると考えました。だから私はアクションバーのメニューXMLを追加しましたが、私が使用すると

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM); 
actionbar.setCustomView(R.menu.actionbar); 

私のプログラムがクラッシュします。私はこれを完全に間違ってやっていると信じています。

私のアクションバーのXML:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@+id/item1" android:icon="@android:drawable/ic_menu_add"></item> 


</menu> 

私は、私はアクションバーに項目を追加し、mainActivityでOnCreateOptionsMenu機能を経由して、それを埋めるためになってるいくつかのチュートリアルで読みます。しかし、それは私のオプションメニューが配置され、私のアクションバーではありません。

+0

あなたの助けになるようにlogcatレポートを表示してください。 **ありがとうございました**。 – AndroidDev

+0

カスタム 'ActionBar'実装をしたいのですか、通常の' ActionBar'で余分な項目がほしいだけですか? – Darwind

+0

通常のアクションバーに余分な項目があります。そこに「追加」ボタンがあります。 OnCreateOptionsに読み込むときに読んだときに混乱していました。なぜなら、それは私が配置されていて、自分のオプションメニュー(ハードウェアボタン)を作ったからです。私がアクションバーを使用するように変更した場合、それはオプションメニューを消去しませんでしたか? – CREW

答えて

8

アクティビティは、そのonCreateOptionsMenu()メソッドでActionBarに値を設定します。アクションバーのアクションが選択された場合

代わりのsetcustomviewを使用して()、ちょうどこの

@Override 
public boolean onCreateOptionsMenu(Menu menu){ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mainmenu, menu); 

    return true; 
} 

ようonCreateOptionsMenuオーバーライド、onOptionsItemSelected()メソッドが呼び出されます。選択されたアクションをパラメータとして受け取ります。この情報に基づいて、あなたは何をすべきかをコードで決められます:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.menuitem1: 
      Toast.makeText(this,"Menu Item 1 selected",Toast.LENGTH_SHORT).show(); 
      break; 
     case R.id.menuitem2: 
      Toast.makeText(this,"Menu item 2 selected",Toast.LENGTH_SHORT).show(); 
      break; 
     default: 
      break; 
    } 

    return true; 
} 
+0

私の主な活動には既にOnCreateOptionsMenuがあります。これは、ハードウェア設定ボタンを押すとポップアップするオプションメニューに使用されています。 R.menu.mainmenuをR.menu.actionbarに変更しますか? 設定メニューを保存してアクションバーを設定する方法はありますか? – CREW

+0

あなたのoncreateoptionsmenu()@CREWのR.menu.mainmenuに変更してください – AndroidDev

関連する問題