5

以下是带有意图数据的选项卡示例。

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

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

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

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)));
    }
}
4

2 回答 2

1

设置默认选项卡(1);

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

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

tabHost.setCurrentTab(1);

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

于 2010-08-01T21:52:10.777 回答
0

我也发现了同样的行为,我没有具体的修复方法。但我确实知道一种解决方法。

不要将活动附加到每个选项卡,而是将视图附加到每个选项卡。然后,您可以非常轻松地处理数据传递,因为每个视图都在同一个 Activity 中。这也消除了使用 Intent 传递信息的需要。此外,您可以根据需要创建(或扩展)您的视图,并进行更多控制。

祝你好运,-斯科特

于 2012-06-16T06:02:21.640 回答