Расширить меню ActionBarSherlock, определенное в XML

Должно быть достаточно просто, но может и не быть.

При использовании панели действий в Android 3.0+ у вас есть возможность определить элементы меню в XML или в коде. Я предпочитаю кодировать их в xml, так как панели действий больше основаны на пользовательском интерфейсе, чем на функциональности.

В обычный день вы использовали бы это, чтобы раздуть XML в меню

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // Menu is defined inside 'res/menu/...xml
    getMenuInflater().inflate(R.menu.activity_home, menu);
    return true;
}

И ваш файл XML будет выглядеть так

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

    <item
        android:id="@+id/menu_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/menu_settings"/>
    <item
        android:id="@+id/menu_item_menu"
        android:icon="@drawable/menu_off_128"
        android:showAsAction="ifRoom|withText"
        android:title="@string/inbox_string"/>
    <item
        android:id="@+id/menu_item_gallery"
        android:icon="@drawable/gallery_off_128"
        android:showAsAction="ifRoom|withText"
        android:title="@string/gallery_string"/>
    <item
        android:id="@+id/menu_item_inbox"
        android:icon="@drawable/inbox_off_128"
        android:showAsAction="ifRoom|withText"
        android:title="@string/inbox_string"/>
    <item
        android:id="@+id/menu_item_contact"
        android:icon="@drawable/phone_off_128"
        android:showAsAction="ifRoom|withText"
        android:title="@string/contact_string"/>

</menu>

Прямо сейчас я столкнулся с проблемой обратной совместимости панели действий, и actionbarsherlock кажется наиболее приятным в использовании и популярным. Итак, я попробовал вышеописанное с actionbarsherlock и, к сожалению, возникли проблемы со временем компиляции.

А именно, что класс Menu, возвращаемый инфлятором, взят из Android.view.menu, а не из com.actionbarsherlock.menu. Я копался в примерах на github, но все они имеют меню, определенное в коде.

Итак, кому-нибудь удалось заставить меню actionbarsherlock работать с макетом на основе XML-файла?

7
задан Overtone 1 August 2012 в 12:06
поделиться