Ответ 1
Отменить OnPrepareOptionsMenu
и добавить значок тоже там
и если для него выше 3.0, используйте android:showAsAction
в xml.
например. android:showAsAction="ifRoom|withText"
Как показать значок с опцией menu.I пробовал следующий код, но в моем меню параметров отсутствует значок изображения. Я использую Android версию 4.0 для разработки приложения.
Java-код:
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add("Add Contacts").setIcon(
R.drawable.ic_launcher);
return true;
}
Ниже показан снимок экрана приложения
Мне нужно, чтобы изображение отображалось в верхней части элемента "Добавить контакты".
Отменить OnPrepareOptionsMenu
и добавить значок тоже там
и если для него выше 3.0, используйте android:showAsAction
в xml.
например. android:showAsAction="ifRoom|withText"
Я пробовал код в двух строках, и он работает:
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add("Add Contacts");
menu.getItem(0).setIcon(R.drawable.ic_launcher);
return true;
}
Вы можете создать собственное меню, подобное этому:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add_contacts"
android:icon="@drawable/ic_launcher"
android:title="@string/add_contacts"
/>
</menu>
И затем раздуйте его
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.my_menu, menu);
return true;
}
Подробнее об этом здесь: http://developer.android.com/guide/topics/ui/menus.html#options-menu
вы можете напрямую установить это в xml файл.
<item android:id="@+id/add_contacts"
android:icon="@android:drawable/plus_icon"
android:title="Add Contacts"/>
Вы можете попробовать После этого Ссылка.
Проверьте это и скажите, работает ли он или нет.
Или вы можете сделать что-то вроде этого. Создать menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/next"
android:icon="@drawable/ic_next"
android:title="@string/next" />
<item android:id="@+id/previous"
android:icon="@drawable/ic_previous"
android:title="@string/previous" />
<item android:id="@+id/list"
android:icon="@drawable/ic_list"
android:title="@string/list" />
</menu>
И теперь вы сможете установить ICON в меню
Теперь в CreateOptionMenu
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
И для доступа к этому меню.
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.next:
Toast.makeText(this, "You have chosen the " + getResources().getString(R.string.next) + " menu option",
Toast.LENGTH_SHORT).show();
return true;
…
default:
return super.onOptionsItemSelected(item);
}
}
Если вы используете следующий атрибут в файле манифеста, тогда он будет показывать значок.
<activity android:name=".ui.CategoryActivity"
android:label="@string/app_name"
**android:theme="@android:style/Theme.NoTitleBar"**></activity>
Это отлично работает для меня...:) +1 для моих собственных усилий...
**.
Самый простой способ - использовать @drawable только при настройке пункта меню.
ИЛИ
Просто поместите @drawable перед объявлением заголовка.
<?xml version="1.0" encoding="UTF-8" ?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app ="http://schemas.android.com/apk/res-auto">
<item
android:id ="@+id/addToFavorites"
android:icon = "@drawable/ic_favorite_border_white_24dp"
android:title = "Hello"
app:showAsAction="always" />
<item
android:id ="@+id/about"
android:title ="About"
app:showAsAction="never" />
</menu>
проблема заключается в Androidmanifest.xml.
Удалите android:theme="@style/AppTheme"
, и он будет работать просто отлично
Чтобы включить меню параметров со значками, оберните элементы элементом с помощью showAsAction="always"
и меню.
Пример:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action1"
android:orderInCategory="100"
android:title="@string/action1"
android:icon="@mipmap/ic_icon_action1"
app:showAsAction="never" />
</menu>
Для включения значков используйте:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="@string/title_menu"
android:icon="@mipmap/ic_icon_menu"
app:showAsAction="always">
<menu>
<item
android:id="@+id/action1"
android:orderInCategory="100"
android:title="@string/action1"
android:icon="@mipmap/ic_icon_action1"
app:showAsAction="never" />
</menu>
</item>
</menu>