12

AppCompatライブラリに付属のActionBarの使用を開始しました。しかし、これに追加するアクションは、オーバーフローメニューに表示されます。私は何かをスキップしたと確信していますが、私は全く知りません。ここに私のメニューファイルがあります:ActionBarCompatは、オーバーフローメニューのすべてのアクションを表示します。

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/connect_plus" 
     android:icon="@drawable/ic_google_plus" 
     android:title="Connect to Google+" 
     android:showAsAction="always" 
     android:titleCondensed="Connect to Google+"> 
    </item> 

</menu> 

そしてActionBarActivityから延びる活動からonCreate方法で任意の構成:

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setHomeButtonEnabled(true); 

私が何かを見逃していましたか?

答えて

25

私は何かを見逃しましたか?

はい。

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:yourapp="http://schemas.android.com/apk/res-auto" > 

    <item 
     android:id="@+id/connect_plus" 
     android:icon="@drawable/ic_google_plus" 
     android:title="Connect to Google+" 
     yourapp:showAsAction="always" 
     android:titleCondensed="Connect to Google+"> 
    </item> 

</menu> 

the documentationに示されているよう:

は、あなた自身の名前空間を使用する必要があります。

+0

大変です。それはうまくいった。ありがとう! – Korcholis

+0

私はActionBarCompatライブラリを使用しています。このようなメニューをJavaコードで追加しています。 @Override \tパブリックブールonCreateOptionsMenu(メニューメニュー){ \t \t // TODO自動生成方法スタブ \t \t menu.add(0、1、1、 "検索")。setIcon(R.drawable.search_icon ); \t \t return super.onCreateOptionsMenu(menu); \t} メニューを追加するときに名前空間をプログラムで追加する方法は? –

+1

@BhargavVasani:あなたは名前空間を扱わない。しかし、 'setShowAsAction()'のようなものにアクセスするには 'MenuItemCompat'を使う必要があります:http://developer.android.com/reference/android/support/v4/view/MenuItemCompat.html#setShowAsAction%28android.view .MenuItem、%20int%29 – CommonsWare