1

menu/contacts_menu.xmlasには 2 つのメニュー項目があります。

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

    <item
        android:id="@+id/pm_action_search"
        android:actionViewClass="android.widget.SearchView"
        android:icon="@drawable/ic_action_search"
        android:orderInCategory="1"
        android:showAsAction="ifRoom|collapseActionView"
        android:title="@string/action_search"/>
    <item
        android:id="@+id/show_online"
        android:icon="@drawable/online_icon"
        android:orderInCategory="2"
        android:showAsAction="ifRoom"
        android:title="Show Online"/>

   </menu>

どこで、私の中でFragment

    @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.contacts_menu, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.show_online) {
        // DO SOMETHING
        return true;
    }
    return super.onOptionsItemSelected(item);
}

他のアプリでも同じ手順を実行しましたが、アクション アイテムが表示されています。しかし、私の現在のアプリでは、それらは表示されていません。メニュー ボタンを押した場合にのみ、アクション アイテムがテキストのみで表示されます。アクションバーにアイコンを表示したい。

4

1 に答える 1

3

appcompat ライブラリを使用していると思いますか? これを試して:

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

    <item
        android:id="@+id/pm_action_search"
        android:actionViewClass="android.widget.SearchView"
        android:icon="@drawable/ic_action_search"
        android:orderInCategory="1"
        android:showAsAction="always|collapseActionView"
        appcompat:showAsAction="always|collapseActionView"
        android:title="@string/action_search" />
    <item

        android:id="@+id/show_online"
        android:icon="@drawable/online_icon"
        android:orderInCategory="2"
        android:showAsAction="always"
        appcompat:showAsAction="always"
        android:title="Show Online" />

</menu>

これは間違いなく機能するはずですが、簡単にするためにこれを試すこともできます。

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

    <item
        android:id="@+id/pm_action_search"
        android:actionViewClass="android.widget.SearchView"
        android:icon="@drawable/ic_action_search"
        android:orderInCategory="1"
        appcompat:showAsAction="always|collapseActionView"
        android:title="@string/action_search" />
    <item

        android:id="@+id/show_online"
        android:icon="@drawable/online_icon"
        android:orderInCategory="2"
        appcompat:showAsAction="always"
        android:title="Show Online" />

</menu>
于 2014-08-05T09:20:52.800 に答える