如何从FragmentActivity获取片段实例?

Dav*_* S. 39 user-interface android android-fragments

我在FragmentActivity中设置了内容视图,活动将根据布局文件中指定的类名为我创建片段实例.但是我怎样才能获得该片段实例?

public class MyActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle extra) {
        super.onCreate(extra);
        setContentView(R.layout.page_fragment);
    }
}
Run Code Online (Sandbox Code Playgroud)

kin*_*ton 95

您可以根据findFragmentByIdFragmentManager.

由于您使用的是支持库(您正在扩展FragmentActivity),因此您可以使用:

getSupportFragmentManager().findFragmentById(R.id.pageview)
Run Code Online (Sandbox Code Playgroud)

如果您没有使用支持库(因此您使用的是Honeycomb +,并且您不想使用支持库):

getFragmentManager().findFragmentById(R.id.pageview)
Run Code Online (Sandbox Code Playgroud)

请考虑即使在Honeycomb +上也建议使用支持库.


Mer*_*iam 38

要在扩展FragmentActivity的类中获取片段实例:

MyclassFragment instanceFragment=
    (MyclassFragment)getSupportFragmentManager().findFragmentById(R.id.idFragment);
Run Code Online (Sandbox Code Playgroud)

要在扩展Fragment的类中获取片段实例:

MyclassFragment instanceFragment =  
    (MyclassFragment)getFragmentManager().findFragmentById(R.id.idFragment);
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案.另一个(经验证的)答案在使用支持库v4的片段的情况下不起作用,如问题中所使用的(FragmentActivity仅存在于支持库中) (3认同)