android - 第二次单击时,TabActivity 中的 Activity 不运行 onCreate 方法

标签 android android-intent android-widget

我有一个 TabActivity,其中包含 3 个 tabs。我将 currentActivity 设置为 1 而不是默认值 0 。当我启动 TabActivity 时,我发现 Activity0 也在运行,但 Tabactivity 显示了我设置为 currentActivity 的 Activity1 的界面。此外,当我单击 tab2(包括 Activity2)并再次单击 tba1 或 tab0 时,它们不会再次运行。正如我认为 TabActivity 只让运行一次。每当我单击选项卡时,我都想在选项卡中重新启动每个 Activity 。我想保持这些跟踪,以便在单击后退按钮时它应该是可跟踪的。

public class ActivityInTab extends TabActivity implements OnTabChangeListener{
TabHost tabHost;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activityintab);

    tabHost = getTabHost();

    TabSpec meSpec = tabHost.newTabSpec("Ben");
    meSpec.setIndicator("Ben", getResources().getDrawable(R.drawable.icon_me));
    Intent meIntent = new Intent(this, MeActivity.class);
    meSpec.setContent(meIntent);

    TabSpec searchSpec = tabHost.newTabSpec("Arama");
    searchSpec.setIndicator("Çevrende Ara", getResources().getDrawable(R.drawable.icon_search));
//        Intent searchIntent = new Intent(this, SearchActivity.class);
//        searchSpec.setContent(searchIntent);

    TabSpec resultSpec = tabHost.newTabSpec("Aradıklarım");
    resultSpec.setIndicator("Arama  Sonuçlarım", getResources().getDrawable(R.drawable.icon_result));
//        Intent resultIntent = new Intent(this, ResultActivity.class);
//        resultSpec.setContent(resultIntent);       

    tabHost.addTab(searchSpec); 
    tabHost.addTab(meSpec);
    tabHost.addTab(resultSpec);
    tabHost.setCurrentTab(1);

    tabHost.setOnTabChangedListener(this);

}

@Override
public void onTabChanged(String tabId) {
    if(tabId.equals("Ben") && tabHost.getCurrentTab()==0){
        MeActivity meact = (MeActivity) getLocalActivityManager().getActivity(tabId);

    }

    if(tabId.equals("Arama") && tabHost.getCurrentTab()==1){
        SearchActivity sact= (SearchActivity) getLocalActivityManager().getActivity(tabId); 
    }
    if(tabId.equals("Aradıklarım") && tabHost.getCurrentTab()==2){
        ResultActivity ract = (ResultActivity) getLocalActivityManager().getActivity(tabId);
    }

}

最佳答案

为您的标签 Intent 设置标志 Intent.FLAG_ACTIVITY_CLEAR_TOP

Intent meIntent = new Intent(this, MeActivity.class);
meIntent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

还有像这样的评论标签

Intent searchIntent = new Intent(this, SearchActivity.class);
 searchIntent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

关于android - 第二次单击时,TabActivity 中的 Activity 不运行 onCreate 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15967384/

相关文章:

android - 计时器格式更改为 0 :0 to 00:00?

android - Recyclerview 与 GridLayout Manager 在另一个 recyclerview 中

Android:Google Map v2 未显示发布 apk 的 map

android - com.android.vending.billing.PURCHASES_UPDATED 什么时候广播?

android - 无法在 WebView 中键入

android - 如何打开启动器的小部件选择器?

java - API 级别 23 中删除了 org.apache.http 包。有什么替代方案?

android - 用我的安卓应用程序打开一个文件

java - Android - 显示所有已安装应用程序的应用程序选择器

android - 刷新小部件时每个对象都被销毁了吗?