Значок меню параметров Android не будет отображаться
Я слежу за книгой по Android Development, чтобы начать писать свое первое приложение.
Я поднялся до такой степени, что я делаю меню опций для одного из моих занятий. Появится меню, но соответствующий значок пункта меню не отобразится.
Вот код для меню:
ReminderListActivity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater mi = getMenuInflater();
mi.inflate(R.menu.list_menu, menu);
return true;
}
Рез/меню/list_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_insert"
android:icon="@drawable/menu_add"
android:title="@string/menu_insert" />
</menu>
Я скопировал значок ic_menu_add.png(32x32px) из одной из подпапок Android SDK в папку res/drawable-mdpi и переименовал файл в menu_add.png. Я обновил папку в eclipse, чтобы появился значок, и, как вы видите, я установил его как значок для элемента меню в моем файле макета. Я несколько раз пытался запустить проект в эмуляторе, но значок никогда не появляется. Для записи я использую Android 4.0.3.
Любые идеи?
Ответы
Ответ 1
В Android 3.0+ предпочтительный подход для меню параметров (меню перелива в панели действий) не отображает значки. Если у вас есть android:targetSdkVersion="11"
или выше, значки никогда не будут отображаться в меню на Android 3.0+. Значки будут отображаться, если вы рекламируете элемент меню параметров, чтобы быть кнопкой панели инструментов, и значки будут отображаться на устройствах Android 1.x/2.x.
Ответ 2
Это отлично работает для меня в API 23
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:icon="@drawable/ic_menu"
android:orderInCategory="100"
android:title="Option Menu"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action_myorder"
android:icon="@drawable/ic_order"
android:title="My Order" />
<item
android:id="@+id/action_myaccount"
android:icon="@drawable/ic_account"
android:title="My Account" />
<item
android:id="@+id/action_share"
android:icon="@drawable/ic_share"
android:title="Share" />
<item
android:id="@+id/action_term_condition"
android:icon="@drawable/ic_terms"
android:title="Term and Conditions" />
<item
android:id="@+id/action_logout"
android:icon="@drawable/ic_logout"
android:title="Logout" />
</menu>
</item>
Ответ 3
Хорошей идеей является то, что вы создали макет с RelativeLayout
, и когда пользователь выбрал ваше меню, отображается ваш макет.