获取活动中当前片段的名称。 Android Studio

时间:2018-07-13 05:43:03

标签: android-studio android-fragments android-activity android-framelayout

我有一个可加载6个不同片段的帧布局。有什么方法可以从活动中的帧布局中找到当前片段的名称。

Fragment1

getFragmentManager().beginTransaction().replace(
                    R.id.main,Fragment.instantiate(LoadingScreen.this,
                    "com.myapp.fragments.fragment1",bundle)).commit();

Fragment2

getFragmentManager().beginTransaction().replace(
                    R.id.main,Fragment.instantiate(LoadingScreen.this,
                    "com.myapp.fragments.fragment2",bundle)).commit();

我需要从活动中知道哪个片段存在于帧布局中。由于两个不同的片段以相同的布局加载。

2 个答案:

答案 0 :(得分:2)

如果您想知道布局中加载了哪个片段,可以执行以下操作:

    Fragment f = getSupportFragmentManager().findFragmentById(R.id.main);
    if(f instanceof Fragment1){
      //do something
    }
    else if(f instanceof Fragment2){
     //do something
    }

如果您想知道班级名称,请使用:

String name = f.getClass().getCanonicalName()

答案 1 :(得分:1)

您可以使用findFragmentById(),它将返回容器中的当前片段。