Android: Make new Activity stays inside a Tab
<p>I have a customized <code>TabView</code> which displays a <code>ListActivity</code>, but everytime I click one of the list item, it leads to a new activity and the TabView is completely gone.</p>

<p>What I want is, when I click one of the item on the list, the new activity is displayed and still stays inside the tab.</p>

<p>Can anybody help me improve my code?</p>

<p>Here's my code for the customized <code>TabView</code>:</p>

<pre><code>super.onCreate(savedInstanceState);
    // construct the tabhost
    setContentView(R.layout.project_tab);

    setupTabHost();

    setupTabL(new TextView(this), "Alle", (ProjectsList.class));
    setupTab(new TextView(this), "Kategorien", (CategoryList.class));
    setupTabR(new TextView(this), "Favorites", (ProjectsList.class));

    final Button refresh = (Button) findViewById(R.id.btn_project_refresh);
    refresh.setOnClickListener(refresh_listener);
}

private void setupTab(final View view, final String tag, final Class&lt;?&gt; context) {
    View tabview = createTabView(mTabHost.getContext(), tag);
    TabSpec ts1 = mTabHost.newTabSpec("tab1"); 
    ts1.setIndicator(tabview); 
    mTabHost.addTab(ts1);
}

private static View createTabView(final Context context, final String text) {
    View view = LayoutInflater.from(context).inflate(R.layout.inner_tab_m_bg, null);
    TextView tv = (TextView) view.findViewById(R.id.tabsText);
    tv.setText(text);
    return view;
}
</code></pre>

<p>and this is the <code>onListItemClick</code> snippet from the <code>ListActivity</code>'s code:</p>

<pre><code>protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        Object o = this.getListAdapter().getItem(position);
        String choice = o.toString();
        if (choice .equals("Entwicklungshilfe")) {
            Intent i = new Intent(CategoryList.this, SubCategoryList.class);
            i.putExtra("category","'%Entwicklungshilfe%'");
            startActivityForResult(i,0);
</code></pre>
