OptionsMenu в табаксиве для определенной вкладки

StackOverflow https://stackoverflow.com/questions/3404658

  •  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 ()

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top