Klarstellung ‚privaten‘ Drawables in android.R.drawable
Frage
Ich mache ein Menü für eine App und wurde darauf auf diese nützliche Ressource welche listet alle Drawables das ist Teil des Android 2.0 Glases. das Verwendungsbeispiel gegeben ist
myMenuItem.setIcon(android.R.drawable.ic_menu_save);
Leider ist der, den ich will (und die meisten der Liste) sind nicht standardmäßig verfügbar. Ich erhalte
android.R.drawable.ic_menu_login cannot be resolved
wenn ich versuche, den Menüpunkt Bilder zu setzen:
@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 )
Hat sich etwas ändern in den letzten android Releases? Es scheint, dass die meisten von ihnen sind jetzt ‚private Ressourcen‘ ... nicht viele Informationen dazu finden könnte, aber ich fand einige Hinweise:
Es ist für den Zugriff für private Ressourcen. Verwenden Sie es nicht, da diese private Mittel sind oft entfernt / umbenannt / etc. Mit ihm würde höchstwahrscheinlich Ihre Anwendung in der Pause Zukunft.
Warum sollten sie die Ressourcennamen ändern überhaupt? (Die Bilder hinter ihnen sicher, aber die Namen?) Wie kann ich ic_menu_login dann? Gibt es einen besseren Grund, nicht als die oben?
Lösung
Wie kann ich ic_menu_login dann?
Kopieren Sie es in Ihre Anwendung. Sie können alle von ihnen in Ihrer SDK-Installation, speziell in $ANDROID_HOME/platforms/$API/data/res/
, wo $ANDROID_HOME
ist überall dort, wo Sie das SDK installiert und $API
einig Android-Ebene (zum Beispiel android-2.1
).