Android: Переключатель вкладок - Как обновить отображение при переключении между вкладками? - PullRequest
2 голосов
/ 27 июля 2011

Приложение, которое я создаю, имеет вкладку с тремя вкладками.Цель состоит в том, чтобы обновить отображение в новой вкладке, когда произойдет переключение.У меня есть следующий слушатель изменения вкладки, настроенный в основном действии, которое построило хост вкладок.

tabHost.setOnTabChangedListener(new OnTabChangeListener(){
  public void onTabChanged(String tabId) {
    //Now what?
  }
});

Вопрос в том, как мне взять tabId и использовать его для вызова метода в этомtab?

Edit

Для пояснения: при создании Intent для новой вкладки вы указываете класс деятельности, объект которого, предположительно, создается для обработки настроек иуправление этой вкладкой.

    intent = new Intent().setClass(this, Setup.class);
    spec = tabHost.newTabSpec("setup").setIndicator("",
      res.getDrawable(R.drawable.tab_setup))
        .setContent(intent);
    tabHost.addTab(spec);

Что я ищу в этом вопросе, так это как получить ссылку на этот объект?В приведенном выше примере класс Setup создается для обработки «вкладки настройки».

Чтобы переформулировать мой вопрос сейчас: как мне из OnTabChangeListener вызвать метод в Setupкласс

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Попробуйте использовать

tabHost.setOnTabChangedListener(new OnTabChangeListener(){
        public void onTabChanged(String tabId) {
            //Now what?
                  Object.refreshDrawableState();
        }
        });

Где Object = любой отображаемый объект.

1 голос
/ 27 июля 2011

Как оказалось, решение проблемы ближе к дому.Вместо того, чтобы прикреплять код к TabHost, решение включает в себя включение в жизненный цикл действия путем переопределения методов onPause и onResume.

@Override
public void onResume() {
    super.onResume();
    // Update your UI here.
}
...