Ответ 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.