我在Android中遇到了一个奇怪的问题。我正在使用Fragment
个软件包中的FragmentActivity
和android.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作为参数。
关于如何解决这个奇怪问题的任何想法?
答案 0 :(得分:4)
使用此:
this.getSupportFragmentManager();
而不是:
this.getFragmentManager();
希望有所帮助
答案 1 :(得分:0)
FragmentActivity来自support.v4 jar,所以在FragmentActivity的情况下,您必须选择supportFragmentManager,如果是Activity,您可以直接获得FragmentManager与片段事务相同。
由于 ANKUR