findFragmentById的替代方法,用于获取已打开片段的引用

时间:2014-09-02 07:03:45

标签: android android-fragments

我试图告诉片段改变某个视图对活动的可见性,但我不知道如何获得对该片段的引用。

我发现的是

 findFragmentById(R.id.asdasd)

但是我的片段没有从XML布局中膨胀,所以它没有这样的ID(我猜?)

那么如何以另一种方式引用这个片段呢?

以下是我如何从活动中添加片段:

public void addFragment(Fragment fragment) {
    String fragmentClassName = ((Object) fragment).getClass().getSimpleName();
    FragmentTransaction t = getFragmentManager().beginTransaction();
    t.replace(R.id.fragment_container, fragment, fragmentClassName);
    t.addToBackStack(fragmentClassName);
    t.commit();

2 个答案:

答案 0 :(得分:1)

由于您已经在片段中设置了标记,因此您可以使用它来使用片段管理器通过其标记查找片段。

<强>样品:

 String fragmentClassName = The_Class_Name_Of_Fragment.getClass().getSimpleName();
 YourFragment fragment = getFragmentManager().findFragmentByTag(fragmentClassName);

答案 1 :(得分:-2)

您应致电findFragmentById(R.id.fragment_container)以引用您的Fragment