gpt4 book ai didi

android - 不运行 oncreate(),在同一页的选项卡更改上,第二次

转载 作者:行者123 更新时间:2023-11-29 18:19:10 25 4
gpt4 key购买 nike

我在页面 View 中有 4 个选项卡,当我第一次单击选项卡时,它会执行相应选项卡的 oncreate() 方法,当我转到同一页面上的其他选项卡并再次单击上一个时单击选项卡然后它的 oncreate() 方法不执行为什么?为什么它不起作用,因为按钮单击意味着每次我单击它的 oncreate() 方法运行。

我的选项卡 Activity 类代码如下

  intent1 = new Intent().setClass(this, keywordxmlparsing.class);
spec1 = tabHost.newTabSpec("Activity2").setIndicator("keyword/ search...").setContent(intent1);
tabHost.addTab(spec1);

intent2 = new Intent().setClass(this, filter.class);
spec2 = tabHost.newTabSpec("Activity1").setIndicator("filter search").setContent(intent2);
tabHost.addTab(spec2);
intent3 = new Intent().setClass(this, OpeningToday.class);
spec3 = tabHost.newTabSpec("Activity3").setIndicator("opening today").setContent(intent3);
tabHost.addTab(spec3);
intent4 = new Intent(keywordresulttab.this,Map.class);
spec4 = tabHost.newTabSpec("Activity4").setIndicator("Map").setContent(intent4);
tabHost.addTab(spec4);

亲爱的,如果我用

    @Override
public void onTabChanged(String label) {
// TODO Auto-generated method stub
if(label == "Activity2") {




}
try{
if(label == "Activity4") {
Intent intent4;
intent4 = new Intent(keywordresulttab.this,Map.class);
startActivity(intent4);
Log.i("suiuawhd","maps class");




}

那我可以去其他activity means using

  intent4 = new Intent(keywordresulttab.this,Map.class);
startActivity(intent4);

我们可以在标签点击时再次加载activity??然后用什么代替

     tabHost.addTab(spec3);
intent4 = new Intent(keywordresulttab.this,Map.class);
spec4 = tabHost.newTabSpec("Activity4").setIndicator("Map").setContent(intent4);
tabHost.addTab(spec4);

最佳答案

包含 Activity 的选项卡是通过 ActivityGroup 实现的。当有人更改选项卡时,在必要时创建相应的 Activity 。当您第二次移动到任何选项卡时,该 Activity 已经存在并且仅显示其窗口。你应该改用:

TabHost.setOnTabChangedListener(TabHost.OnTabChangeListener l)

将单独的 Activity 作为内容的 TabActivity 有点棘手,因此也许您应该考虑改用 View 。如果没有,您可以使用以下代码来访问彼此的所有 Activity :

从 TabActivity 获取内容 Activity 的实例:

TabActivity.getLocalActivityManager().getActivity(String name)

名称在 newTabSpec() 方法中给出。

从内容 Activity 中获取 TabActivity 的实例:

FirstTab.getParent()

使用这些方法,您可以在所有 Activity 之间创建通信(使用适当的转换)。例如:

public void onTabChanged(String label) {

if(label.equals("Activity2")) {
SecondActivity sa = (SecondActivity) getLocalActivityManager().getActivity(label);
sa.modifySomething();
}
}

如果您想更改选项卡下的 Activity ,您应该使用:

tabHost.clearAllTabs ()

并再次创建所有 TabSpec。

关于android - 不运行 oncreate(),在同一页的选项卡更改上,第二次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6467209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com