无论我们将tab2设置为默认选项卡,android第一个选项卡intent oncreate总是被调用

d-m*_*man 5 android tabwidget

以下是具有意图数据的选项卡示例.

在调试时我发现总是在第一个选项卡中我们在tab选项卡中添加了tab主机

tabHost.addTab(tabHost.newTabSpec("tab1")
                    .setIndicator("list")
                    .setContent(new Intent(this, List1.class)));
Run Code Online (Sandbox Code Playgroud)

即使我将tab2定义为当前选项卡如何解决这个问题,"List1"意图的oncreate方法也会被调用,无论它是否是我们当前的选项卡?

public class Tabs3 extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final TabHost tabHost = getTabHost();

        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("list")
                .setContent(new Intent(this, List1.class)));

        tabHost.addTab(tabHost.newTabSpec("tab2")
                .setIndicator("photo list")
                .setContent(new Intent(this, List8.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

        // This tab sets the intent flag so that it is recreated each time
        // the tab is clicked.
        tabHost.addTab(tabHost.newTabSpec("tab3")
                .setIndicator("destroy")
                .setContent(new Intent(this, Controls2.class)
                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
    }
}
Run Code Online (Sandbox Code Playgroud)

Vij*_*y C 1

设置默认选项卡(1);

当单独的活动用作选项卡内容时,TabActivity 似乎不起作用。

使用以下方法代替此方法,

tabHost.setCurrentTab(1);

这会将“照片列表”(即第二个选项卡)设置为选定或默认选项卡...

  • 我有同样的问题,不,这不起作用。它确实设置了选定的选项卡,但无论如何都会调用第一个选项卡的 onCreate 。 (2认同)