توضيح على السحب "الخاص" في Android.r.drawable
سؤال
أقوم بعمل قائمة لتطبيق وأشار إليها هذا المورد المفيد الذي يسرد جميع القواطع التي تشكل جزءًا من جرة 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 إذن؟ هل هناك سبب أفضل لعدم ما سبق؟
المحلول
كيف يمكنني الوصول إلى ic_menu_login إذن؟
نسخه في التطبيق الخاص بك. يمكنك العثور عليها جميعًا في تثبيت SDK الخاص بك ، وتحديدا في $ANDROID_HOME/platforms/$API/data/res/
, ، أين $ANDROID_HOME
هو أينما قمت بتثبيت SDK و $API
هو بعض مستوى Android (على سبيل المثال ، android-2.1
).