OptionsMenu в табаксиве для определенной вкладки
-
25-09-2019 - |
Вопрос
Моя проблема в том, что у меня есть табатность, которая сейчас имеет 4 вкладка. Первая вкладка является специальной вкладкой, где пользователь может изменить некоторые данные.
Проблема в том, что если я добавлю опционовменю для активности, что опции появляются на каждой вкладке. Я пытался проверить текущий 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 ()