Любые простые примеры использования roboguice с фрагментами в android?

У меня возникли проблемы с поиском рабочего примера использования фрагментов + RoboGuice. Проблема возникает, когда вы пытаетесь добавить/удалить фрагменты с помощью менеджера транзакций фрагмента Android. После того, как вы сообщите фрагменту о наследовании от RoboFragment, менеджер транзакций больше не считает, что класс является фрагментом (поскольку он расширяет RoboFragment). Однако вы можете использовать собственный менеджер фрагментов RoboGuice, но он также сбой. Существуют ли какие-либо примеры добавления/удаления фрагментов RoboGuice динамически?

Ответы

Ответ 1

Недавно я начал использовать фрагменты в новом проекте, а следующий код - это код, который я использую

Я не наследую от класса RoboFragment, но я делаю то же самое, добавив следующие строки в мои методы onCreate и onViewCreated. Наследование от RoboFragment не должно вести себя иначе, на самом деле это выглядит RoboFragment.

public void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    RoboGuice.getInjector(getActivity()).injectMembersWithoutViews(this);
}

public void onViewCreated(final View view, final Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    RoboGuice.getInjector(getActivity()).injectViewMembers(this);
    // Do whatever with your injected views.
}

Очевидно, что я также реализовал onCreateView.

Затем в моей работе я расширяю FragmentActivity, поскольку я использую пакет совместимости. Обратите внимание: вы должны использовать FragmentActivity, если вам нужна совместимость с уровнем API до уровня 11. Если вы просто поддерживаете 11, вам не нужна библиотека совместимости или использование FragementActivity. В моей работе я использую следующее, чтобы добавить фрагмент на мою страницу.

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.fragmentHolder, new MyFragment());
transaction.commit();

Тип R.id.fragmentHolder - это FrameLayout.

Все отлично работает с этим, и я могу использовать все мои вложенные ресурсы и представления в своем фрагменте. Для полноты я использую последнюю версию 2.0-SNAPSHOT roboguice с версией r6 библиотеки compatibity-v4 против Android 2.2.1.

Ответ 2

Roboguice 1.x не совместим с библиотекой и фрагментами. Вам придется либо переместить 2.0, который находится в бета-версии, либо расширить классы Fragment *.

Дополнительная информация доступна по адресу:

http://groups.google.com/group/roboguice/browse_thread/thread/2858bc10b83b6beb