OptionsMenu في جدولة لعلامة تبويب محددة
-
25-09-2019 - |
سؤال
مشكلتي هي أن لدي جدولة ، والتي لديها 4 علامات تبويب في الوقت الحالي. علامة التبويب الأولى عبارة عن تفاصيل خاصة ، حيث يمكن للمستخدم تعديل بعض البيانات.
تكمن المشكلة في أنه إذا قمت بإضافة خيارات للنشاط ، فإن OptionsMenu تظهر في كل علامة تبويب. حاولت التحقق من التيار mtabhost.getcurrenttabtag () في ال onCreateOptionSmenu لكن هذا لم يغير شيئًا. حتى كيف نفعل ذلك؟
(الرمز التالي ، الذي لا يزال يعرض الخيارات في كل علامة تبويب)
public boolean onCreateOptionsMenu(Menu menu) {
if(mTabHost.getCurrentTabTag()==getString(R.string.tab_details)) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, EDIT_ID, 0, R.string.menu_edit).setIcon(R.drawable.edit);
return result;
}
return true;
}
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case EDIT_ID: {
Toast.makeText(this, "o.O", Toast.LENGTH_LONG).show();
}
}
return super.onMenuItemSelected(featureId, item);
}
المحلول
أرى أنك تقارن السلاسل (العلامات في الواقع) مع == ، عادة ، هذا أجمل القيام بذلك .equals()
طريقة. ربما سيحل مشكلتك.
لتحديث قائمة خيار ديناميكي (من الوثائق):
إذا كنت ترغب في تغيير قائمة الخيارات في كل مرة يتم فيها فتحها ، فيجب عليك تجاوز onprepareoptionsmenu ()
لا تنتمي إلى StackOverflow