Разъяснение по поводу 'частного' drawables в андроиде. R.drawable

Я делаю меню для приложения и был указан на этот полезный ресурс, который перечисляет все drawables, которые являются частью банки андроида 2.0. данный пример использования

myMenuItem.setIcon(android.R.drawable.ic_menu_save);

К сожалению, тот, который я хочу (и большая часть списка) не доступен по умолчанию. Я добираюсь

android.R.drawable.ic_menu_login cannot be resolved

когда я пытаюсь установить изображения пункта меню:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Add two example menu buttons
    int groupId = 0;
    int menuItemOrder = Menu.NONE;

    int menuItemId = 1;
    String menuItemText = "Add Login Details";
    MenuItem menuItem = menu.add(groupId, menuItemId, menuItemOrder, menuItemText);
    menuItem.setIcon(android.R.drawable.ic_menu_login )

Что-то изменялось в недавних выпусках андроида? Кажется, что большинство из них является теперь 'частными ресурсами'... не мог найти много информации об этом, но я нашел некоторый совет:

Это используется для доступа к частным ресурсам. Не используйте его, потому что эти частные ресурсы часто удалять/переименовывать/и т.д. Используя его, скорее всего, повредил бы Ваше приложение в будущем.

Почему они изменили бы имена ресурса так или иначе? (Изображения позади них уверенный, но имена?), Как я получаю доступ ic_menu_login затем? Существует ли лучшая причина не к, чем вышеупомянутое?

5
задан Jonik 29 October 2019 в 13:41
поделиться

1 ответ

Как мне тогда получить доступ к ic_menu_login?

Скопируйте его в ваше приложение. Вы можете найти их все в вашей установке SDK, а именно в $ANDROID_HOME/platforms/$API/data/res/, где $ANDROID_HOME - это место, куда вы установили SDK, а $API - это какой-то уровень Android (например, android-2.1).

14
ответ дан 18 December 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: