Android:FragmentManager版本不匹配

时间:2014-10-21 12:17:28

标签: java android android-fragments

我在Android中遇到了一个奇怪的问题。我正在使用Fragment个软件包中的FragmentActivityandroid.support.v4.app s。但是,FragmentActivity.getFragmentManager()似乎返回android.app.FragmentManager类型的对象而不是android.support.v4.app.FragmentManager。前者与v4碎片不兼容,导致我无法使用任何东西。例如,以下代码给出了类型不匹配:

// "this" is a FragmentActivity, "frag" is a Fragment -- both from the v4 packages
FragmentManager fm = this.getFragmentManager();
fm.beginTransaction()
    .replace(R.id.content_frame, frag)
    .commit();

这会返回一个类型不匹配异常,因为replace()方法不接受v4 Fragment作为参数。

关于如何解决这个奇怪问题的任何想法?

2 个答案:

答案 0 :(得分:4)

使用此:

this.getSupportFragmentManager();

而不是:

this.getFragmentManager();

希望有所帮助

答案 1 :(得分:0)

FragmentActivity来自support.v4 jar,所以在FragmentActivity的情况下,您必须选择supportFragmentManager,如果是Activity,您可以直接获得FragmentManager与片段事务相同。

由于 ANKUR