我正在写一个Android应用程序。应用程序有一个主要活动,主活动有一个tabhost,其中包含5个选项卡和一个framelayout
,其中包含fragments
。
点击每个标签后,框架布局中fragment
中的fragment
将被相应的fragment
替换。
现在我通过选择一些通知从应用程序中移出。并再次从主屏幕返回到应用程序activity
从第一个开始。并加载第一个fragment
(这是不可见的,但可以从log cat中看到主actviy的onCreate
被调用)。但可见的fragment
是fragment
,我去了通知。
任何想法为什么会这样发生?
代码
tabChanged= new OnTabChangeListener() {
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
tab_Change(tabId);
}
};
mTabHost.setOnTabChangedListener(tabChanged);
void tab_Change(String ss)
{
if(ss.equalsIgnoreCase("TRIAL"))
{
selected_tab=0;
View tab_view =mTabHost.getCurrentTabView();
tab_view.setBackgroundResource(R.drawable.menutab_bg);
if(arr_frag1==null)
{
addTrialTab();
}
else
{
ShowFragmentByIndex(selected_tab);
}
}
... etc }
public void addTrialTab()
{
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment frag_first = new TrailMainFrag();
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, frag_first,"TRIAL0").commit();
AddFragmentid("TRIAL0");
}
void ShowFragmentByIndex(int index)
{
FragmentManager fm = getSupportFragmentManager();
String temp_fr = "";
int size = 0;
if(index == 0)
{
size = arr_frag1.size();
temp_fr =(String)arr_frag1.get(size-1);
}
... etc FragmentTransaction ft = fm.beginTransaction();
Fragment fr = fm.findFragmentByTag(temp_fr);
if(fr!=null)
{
ft.attach(fr);
}
ft.commit();
}