Android: запустить новый Intent из ListView в том же самом FrameLayout, расположенном в TabHost

Решение этой проблемы заняло у меня несколько дней на исследование.
Структура моей аппы следующая:



    
         
        
            
    

В этом 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.

Leave a Reply

%d bloggers like this: