0

私はアンドロイドアプリケーションを書いています。アプリケーションにはメイン アクティビティがあり、メイン アクティビティには 5 つのタブを含むタブホストとframelayoutを保持するタブがありますfragments

タブを除くすべてがフラグメントです

各タブをクリックするfragmentfragment、フレーム レイアウト内の がそれぞれの に置き換えられますfragment

今、通知を選択してアプリから移動します。ホーム画面からアプリに戻り、activity最初からやり直します。最初のものをロードします(これは表示されませんが、メインの actviy が呼び出されfragmentたログ cat から確認できます)。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();
            }
4

0 に答える 0