在Container中按标记名称查找片段

时间:2013-06-04 13:14:44

标签: android fragment

我有一个相对布局,我在相对布局中添加片段。 喜欢这个

     HomeFragment mHomeFragment = new HomeFragment();
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction();

    if(mHomeFragment!=null&& mHomeFragment.isAdded()){

        fragmentTransaction.show(mHomeFragment);

    }else {

        fragmentTransaction.add(R.id.order_container,mHomeFragment,"Search");


    }
    fragmentTransaction.commit();

我还有一个文本视图,我必须在相对布局中显示我添加的片段的名称。 喜欢搜索以防万一。 如何获取在我的相对布局中添加的片段的名称              id = R.id.order_container

6 个答案:

答案 0 :(得分:36)

您可以通过

标记检索片段
Fragment fragment = getFragmentManager().findFragmentByTag("yourstringtag");

然后你可以检查你的片段是否是HomeFragment

的实体
if (fragment instanceof HomeFragment) {
}

答案 1 :(得分:3)

你想要这个名字?您可以使用ID获取片段并执行:

fragment.getClass().getName();

这是你想要的吗? 或者您可以使用:

fragment.getTag();

如果指定,则返回片段的标记名称。

答案 2 :(得分:3)

如果要获取片段的标记,可以使用getTag()方法。这可能不是实现你想要做的最好的方式。

http://developer.android.com/reference/android/app/Fragment.html#getTag()

如果您有多个片段并且您将更改它们,请考虑使用适配器。

答案 3 :(得分:3)

您可以在findFragmentById

中使用FragmentManager
getFragmentManager().findFragmentById(R.id.order_container)

答案 4 :(得分:2)

Fragment fragment = getFragmentManager().findFragmentById(R.id.order_container);
String tag = (String) fragment.getTag();

答案 5 :(得分:-1)

getSupportFragmentManager().findFragmentById(R.id.container).getClass().getName();