私はアンドロイドアプリケーションを書いています。アプリケーションにはメイン アクティビティがあり、メイン アクティビティには 5 つのタブを含むタブホストとframelayout
を保持するタブがありますfragments
。
各タブをクリックするfragment
とfragment
、フレーム レイアウト内の がそれぞれの に置き換えられます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();
}