Как заставить PreferenceFragment работать с MainActivity


В моем методе MainActivity onCreate у меня есть

getFragmentManager()
    .beginTransaction()
    .add(android.R.id.content, new MyPreferenceFragment())
    .commit();

Это добавляет PreferenceFragment к содержимому моего приложения ViewGroup, но также делает недоступным содержимое MainActivity (кнопки больше нельзя нажимать).

Мой вопрос: есть ли способ заставить PreferenceFragment Работать с MainActivity так, чтобы и Activity, и Fragment были доступны?

Спасибо, Джон

2 2

2 ответа:

Вы можете раздуть свой Fragment в представление контейнера.

Для этого добавьте ViewGroup в файл макета вашего Activitie, например:

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

И используйте это в своей деятельности:

getFragmentManager()
      .beginTransaction()
      .add(R.id.container, new MyPreferenceFragment())
      .commit();
Теперь вы можете просто показать Fragment в данном контейнере, не перезаписывая макет MainActivity.
getFragmentManager()
      .beginTransaction()
      .add(android.R.id.content, new MyPreferenceFragment())
      .commit();

Вот оно!