0

我正在写一个安卓应用程序。该应用程序有一个主要活动,主要活动有一个包含 5 个选项卡和一个包含 5 个选项卡的选项卡framelayout主机fragments

除了选项卡之外的所有内容都是片段

fragment单击框架布局中的每个选项卡时fragment,将替换为相应的fragment.

现在我通过选择一些通知从应用程序中移出。并再次从主屏幕返回应用程序,activity从第一个开始。并加载第一个fragment(这是不可见的,但可以从日志 cat 中看到onCreate调用了主要的 actviy)。但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();
            }
4

0 回答 0