Решение этой проблемы заняло у меня несколько дней на исследование.
Структура моей аппы следующая:
В этом TabHostе три таба.
Клик на каждый из табов открывает соответствующую страницу ListView.
При клике на пункт ListView открывается соответствующее Activity, которое производится следующим кодом:
Intent intent = new Intent(this, newActivity.class); this.startActivity(intent);
Проблема заключалась в том, что newActivity открывается в новом окне, а я хотел, чтобы в этом же самом окне.
Просьба о помощи на stackoverflow.com не помогла.
Неожиданно я нашел следующее решение Experience — Multiple Android Activities in a TabActivity
Теперь мой код выглядит следующим образом:
TabGroupActivity parentActivity = (TabGroupActivity)getParent(); parentActivity.onBackPressed(); Intent newIntent = new Intent(getParent(), newActivity.class); parentActivity.startChildActivity("newActivity", newIntent);
Внимание: если у вас используется такая Widget функциональность, которая требует поп-апа в вашем View, убедитесь, что используете getParent() вместо Context.