Esclarecimentos sobre traços 'privados' em Android.R.Drawable
Pergunta
Estou fazendo um menu para um aplicativo e fiquei apontado para este recurso útil que lista todos os desenhos que fazem parte do jar Android 2.0. O exemplo de uso dado é
myMenuItem.setIcon(android.R.drawable.ic_menu_save);
Infelizmente, o que eu quero (e a maioria da lista) não está disponível por padrão. eu recebo
android.R.drawable.ic_menu_login cannot be resolved
Quando tento definir as imagens do item do menu:
@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 )
Alterou algo nos lançamentos recentes do Android? Parece que a maioria deles agora é 'recursos privados' ... não conseguiu encontrar muitas informações sobre isso, mas encontrei alguns conselhos:
É usado para acessar recursos privados. Não o use porque esses recursos privados são frequentemente removidos/renomeados/etc. Usá -lo provavelmente quebraria seu aplicativo no futuro.
Por que eles mudariam os nomes de recursos? (As imagens por trás delas certamente, mas os nomes?) Como faço para acessar o IC_MENU_LOGIN então? Existe uma razão melhor para não do que o acima?
Solução
Como faço para acessar o ic_menu_login então?
Copie -o para o seu aplicativo. Você pode encontrar todos eles em sua instalação SDK, especificamente em $ANDROID_HOME/platforms/$API/data/res/
, Onde $ANDROID_HOME
está onde você instalou o SDK e $API
é algum nível de Android (por exemplo, android-2.1
).