findFragmentByTag始终返回null

时间:2014-02-07 10:58:10

标签: android android-fragments android-activity fragment android-fragmentactivity

我哪里错了。我只想检查具有给定ProductId的片段是否已在BackStack中可用;

如果是,则不要添加新的片段,否则将当前片段添加到backstack。

public void showThisFragment(Fragment newFragment,int productId){
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.am_fragment_holder, newFragment);
    if(fragmentManager.findFragmentByTag(productId+"")==null){
        fragmentTransaction.addToBackStack(productId+"");
    }else{
        //TODO fragment already present
        //So dont add to the back stack
    }    
    fragmentTransaction.commit();
}

请帮忙!

1 个答案:

答案 0 :(得分:1)

替换片段没有添加标签。你应该使用三个参数替换方法。我没有测试它,所以告诉我,如果我是对的。

fragmentTransaction.replace(R.id.am_fragment_holder, newFragment, String.valueOf(productId));