以下是带有意图数据的标签示例。
调试时我发现总是在第一个标签页面中我们在标签主机中添加标签
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("list")
.setContent(new Intent(this, List1.class)));
oncreate方法“List1”意图被调用,无论它是否是我们当前的标签,即使我将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)));
}
}
答案 0 :(得分:1)
当单独的活动用作选项卡内容时,setDefaultTab(1);
似乎不适用于TabActivity。
使用以下代替此方法,
<强> tabHost.setCurrentTab(1); 强>
这会将“照片列表”(即第二个标签)设置为选定或默认标签...
答案 1 :(得分:0)
我也发现了同样的行为,我没有具体的解决方法。但我确实知道解决方法。
不是将活动附加到每个选项卡,而是将视图附加到每个选项卡。然后,您可以非常轻松地处理数据传递,因为每个视图都在同一个Activity中。这也消除了使用Intents传递信息的需要。此外,您可以根据需要创建(或膨胀)视图,并进行更多控制。
祝你好运, 斯科特