我有一个 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/