Android отправляет данные из различных действий, управляемых TabHost (который имеет пользовательские TabWidgets) - PullRequest
2 голосов
/ 14 июля 2011

У меня проблема со связью между действиями, которые управляются TabHost.Особенно проблема заключается в следующем:

  • Существует главный класс, расширяющий TabActivity;в нем находится TabHost с 4 экранами;
  • 4 экрана представляют собой 4 различных действия, управляемых TabHost следующим образом:

    private void setupScreen1{
    intent.setClass(this, Class1.class);
    
    TabHost.TabSpec spec = tabHost.newTabSpec("a1")
            .setIndicator(getString(R.string.week_view),
                    getResources().getDrawable(R.drawable.icon1))
            .setContent(intent);
    tabHost.addTab(spec); }
    
  • С экрана 1 Мне нужно изменитьтекущую вкладку TabHost на Screen2 и отправить некоторые данные на Screen2.Для этого у меня есть 2 BroadcastReceivers.-> один для отправки намерения в основной класс для переключения вкладки (в этом onReceive () я просто делаю: setCurrentTab(intent.getIntExtra(DATA, -1)); -> другой для отправки данных на Screen2: Screen2 использует эти данные в onCreate()в качестве заголовка; также в Screen2.onCreate () есть BroadcastReveiver, который прослушивает эти данные для использования в качестве заголовка

Проблема заключается в следующем: при первом переключении TabHost на Screen2 данныене отправлено, потому что BroadcastReciver еще не зарегистрирован (поскольку только что вызывается Screen2.onCreate ()). После этого каждый раз, кажется, все работает нормально.

Кто-нибудь знает, как обойти эту проблему?

...