У меня проблема со связью между действиями, которые управляются 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 ()). После этого каждый раз, кажется, все работает нормально.
Кто-нибудь знает, как обойти эту проблему?