Опции в TabActivity для конкретной вкладки - PullRequest
0 голосов
/ 04 августа 2010

Моя проблема в том, что у меня есть TabActivity, которая имеет 4 вкладки прямо сейчас. Первая вкладка - это специальная вкладка «Подробности», где пользователь может изменять некоторые данные.

Проблема в том, что если я добавлю OptionsMenu для Activity, то OptionsMenu появится на каждой вкладке. Я попытался проверить текущий mTabHost.getCurrentTabTag () в onCreateOptionsMenu , но это ничего не изменило. Итак, как это сделать?

(следующий код, который все еще показывает OptionsMenu на каждой вкладке)

 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);
 } 

1 Ответ

0 голосов
/ 04 августа 2010

Я вижу, что вы сравниваете строки (на самом деле теги) с ==, обычно это лучше сделать с помощью метода .equals().Возможно, это решит вашу проблему.
Для динамического обновления меню параметров (из документации):

Если вы хотите изменять меню параметров при каждом его открытии, вы должны переопределить onPrepareOptionsMenu)

...