16

我有一个相对布局,我正在该相对布局中添加片段。像这样

     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 如何获取添加到我的相对布局中的片段名称

4

7 回答 7

46

您可以通过标签检索片段

Fragment fragment = getFragmentManager().findFragmentByTag("yourstringtag");

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

if (fragment instanceof HomeFragment) {
}
于 2013-06-04T13:20:38.863 回答
4
Fragment fragment = getFragmentManager().findFragmentById(R.id.order_container);
String tag = (String) fragment.getTag();
于 2013-06-04T13:16:27.703 回答
3

你要名字??您可以使用 ID 获取片段并执行以下操作:

fragment.getClass().getName();

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

fragment.getTag();

如果指定,它会返回片段的标签名称。

于 2013-06-04T13:20:19.453 回答
3

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

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

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

于 2013-06-04T13:20:23.930 回答
2

You can use findFragmentById in FragmentManager

getFragmentManager().findFragmentById(R.id.order_container)
于 2013-06-04T13:22:53.183 回答
0

这已经很晚了,但我希望这对某人有所帮助。 要按标签查找片段,我们可以这样做:

String tag=getSupportFragmentManager().getFragments().get(index).getTag();
SecondFragment f = (SecondFragment) getSupportFragmentManager().findFragmentByTag(tag);
于 2021-10-11T06:51:52.960 回答
-1
getSupportFragmentManager().findFragmentById(R.id.container).getClass().getName();
于 2015-10-01T07:16:11.577 回答