在PreferenceActivity中使用getSupportFragmentManager()

时间:2013-10-21 12:03:08

标签: android android-fragments preferenceactivity

我的自定义 ConfigActivity 扩展了PreferenceActivity(来自android.preference.PreferenceActivity)。此活动的布局包含<ListView android:id="@android:id/list"...。在这个布局中,我需要以编程方式添加/替换我创建的扩展android.support.v4.app.Fragment的其他几个片段。

然而,Eclipse说:

The method getSupportFragmentManager() is undefined for the type ConfigActivity

我尝试将其替换为getFragmentManager(),但以下调用:

ft.add(R.id.fHeader, new MyCustomFragment());

导致以下错误:

The method add(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, MyCustomFragment)

我唯一的选择是不使用扩展支持库的Fragment类在ConfigActivity中的自定义片段吗?

2 个答案:

答案 0 :(得分:2)

如果您使用的是android.support.v4.app.Fragment,我认为您需要使您的活动扩展FragmentActivity或FragmentActivity的某些子类以使用Fragments。 其他选项可以是将最小sdk版本设置为12,并在不使用支持库的情况下检查代码。

答案 1 :(得分:0)

通常Activity没有FragmentManager。如果您想在Fragment中使用Activity,则应使用支持库中的FragmentActivity
因为android是开源的,所以您可以使用PreferenceActivity中的代码,然后创建MyPreferenceActivity extends FragmentActivity。希望它会有所帮助:))