2013-04-12 22 views
1

我有一個TabActivity其中包括3 tabs。而我設置currentActivity1不是默認的0。當我開始我的TabActivity時,我發現Activity0也在運行,但Tabactivity顯示了我設置爲currentActivity的Activity1的界面。此外,當我點擊tab2(包括Activity2)並再次單擊tba1或tab0時,它們不再運行。正如我認爲TabActivity只是運行一次。我想在每次點擊標籤時重新啓動標籤中的每個活動。我想保持這些跟蹤,以便當點擊後退按鈕時它應該是可以跟蹤的。TabActivity中的活動在第二次單擊時不運行onCreate方法

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

} 

}

+1

的onCreate將只調用一次。你可以檢查onResume。 – Triode

回答

2

設置標誌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); 
+0

謝謝。這個問題解決了。正如你從我的代碼中看到的,我設置了當前活動1.然而,當我調用TabActivity時,活動0即SearchActivity也會首次運行。有沒有什麼辦法可以防止這種情況,而不需要設置tabHost.setCurrentTab(0)? – Emilla

+0

@Emilla檢查這個http://stackoverflow.com/questions/6425742/setcurrenttab-of-a-tabhost – Pragnani

+0

@Emilla你通過點擊答案旁邊的正確標記標記爲答案 – Pragnani

相關問題