разъяснения по поводу «частных» рисовалок в android.R.drawable - PullRequest
3 голосов
/ 14 апреля 2010

Я делаю меню для приложения, и на него указывают этот полезный ресурс , в котором перечислены все элементы рисования, которые являются частью jar-версии Android 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 )

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

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

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

1 Ответ

12 голосов
/ 14 апреля 2010

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

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

...