0

奇怪的行为,我有5个片段,我在动作条在两者之间切换:findFragmentByTag上切换标签

@Override 
public void onTabSelected(Tab tab, FragmentTransaction ft) 
{ 
    int tag = (Integer) tab.getTag(); 
    fragmentTransaction = fragmentManager.beginTransaction(); 

    switch(tag) 
    { 
    case 0: 
     FragmentBase fragBase = new FragmentBase(); 
     fragmentTransaction.replace(R.id.frame_order,fragBase,"FragmentBase"); 
     fragmentTransaction.addToBackStack(null); 
     break; 

    case 1: 
     Fragment1 frag1 = new Fragment1(); 
     fragmentTransaction.replace(R.id.frame_order, frag1, "Fragment1"); 
     fragmentTransaction.addToBackStack(null); 
     break; 

    case 2: 
     Fragment2 frag2 = new Fragment2(); 
     fragmentTransaction.replace(R.id.frame_order, frag2, "Fragment2"); 
     fragmentTransaction.addToBackStack(null); 
     break; 

    case 3: 
     Fragment3 frag3 = new Fragment3(); 
     fragmentTransaction.replace(R.id.frame_order, frag3, "Fragment3"); 
     fragmentTransaction.addToBackStack(null); 
     break; 

    case 4: 
     Fragment4 frag4 = new Fragment4(); 
     fragmentTransaction.replace(R.id.frame_order, frag4, "Fragment4"); 
     fragmentTransaction.addToBackStack(null); 
     break; 

    } 
    fragmentTransaction.commit(); 
} 

然后在功能我想从Fragment4得到的值:

Fragment4 frag4 = (Fragment4)getSupportFragmentManager().findFragmentByTag("Fragment4"); 
    String stfrag4 = frag4.getFrag4Value(); 

的问题是当我在标签4这是我的Fragment4内容页面,findFragmentByTag返回总是为空,但当我切换到另一个标签,然后找到该片段它返回true片段,而不是空。 为什么会发生这种情况?我该如何解决这个问题?提前致谢。

回答

1

化妆测试...

变化

int tag = (Integer) tab.getTag(); 

通过

int tag = getActionBar().getSelectedNavigationIndex();