У меня есть фрагменты с некоторыми кнопками, т. Е. Следующий & предыдущий. Всякий раз, когда нажимается кнопка, мне нужно перейти к следующему фрагменту. Фактически я реализовал это с помощью ViewPager, поэтому, когда пользователь перебирает его, он переходит к следующему фрагменту. Но как я могу изменить фрагмент, просто нажав кнопки. Обратите внимание, что кнопки присутствуют в классе Fragment не в классе FragmentActivity.Изменение фрагмента на кнопке
0
A
ответ
1
Если кнопка является частью фрагмента, то ваша родительская активность должна реализовать интерфейс, который ваши фрагменты также поймут. Затем, когда кнопка нажата, она должна сообщить родительской активности об этом, и она должна заменить фрагмент. Если кнопка является частью макета активности, прочитайте об управлении фрагментами с помощью Fragment Manager и его транзакций.
-1
public class FragmentWithButtons extends Fragment {
public interface Callbacks {
void nextFragment();
void previousFragment();
}
private static Callbacks sDummyCallbacks = new Callbacks() {
void nextFragment() {
// ignore
}
void previousFragment() {
// ignore
}
}
private Callbacks mCallbacks = sDummyCallbacks;
private Button mPrevBtn;
private Button mNextBtn;
private View.OnClickListener mPrevBtnListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
mCallbacks.previousFragment();
}
}
private View.OnClickListener mNextBtnListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
mCallbacks.nextFragment();
}
}
public void onAttach(Activity activity) {
super.onAttach(activity);
if (!(activity instanceof Callbacks) {
throw new IllegalStateException("Activity: " + activity + " must implement " + Callbacks.getCanonicalName());
}
mCallbacks = (Callbacks) activity;
}
public void onDetach() {
super.onDetach();
mCallbacks = sDummyCallbacks;
}
}
public class ActivityWithButtonFragment extends Activity implements FragmentWithButtons.Callbacks {
@Override
public void previousFragment() {
// switch to previous fragment using FragmentManager...
}
@Override
public void nextFragment() {
// switch to next fragment using FragmentManager...
}
}
Кроме того, проверить http://developer.android.com/training/basics/fragments/communicating.html
Это должно дать вам представление о том, как сделать связь фрагмента активности происходит.
Смежные вопросы
- 1. Замена фрагмента на кнопке
- 2. Проблема в кнопке Изменение текста из фрагмента диалога
- 3. На задней кнопке нажата перезагрузка фрагмента
- 4. Изменение TextView на кнопке Нажмите
- 5. Изменение таблиц на кнопке Нажмите
- 6. Изменение изображения на кнопке динамически
- 7. Изменение классов на динамической кнопке
- 8. Изменение ImageView одного фрагмента делает нежелательное изменение макета другого фрагмента
- 9. Изменение цвета фрагмента
- 10. Изменение кода фрагмента назад
- 11. Изменение значений ячейки DataGridView на кнопке Нажмите
- 12. Изменение видимости textView на AlertDialog положительной кнопке
- 13. Изменение состояния цвета на кнопке «ImageToggle»
- 14. Изменение значения ячейки JQGrid на кнопке Нажмите
- 15. Изменение нескольких атрибутов изображения на кнопке Нажмите
- 16. изменение ширины DIV на многократной кнопке мыши
- 17. изменение текста на кнопке и замена диапазона
- 18. Изменение Drawable цвета на кнопке по щелчку
- 19. Кендо сетки, изменение текст на кнопке редактирования
- 20. Изменение текста метки на каждой кнопке Нажмите
- 21. Изменение текста на кнопке в программе
- 22. Javascript: Изменение переменный на кнопке мыши
- 23. Изменение текста на кнопке с другого действия
- 24. Отключить изменение цвета «IsEnabled = false» на кнопке?
- 25. Динамического изменение SWF-файл на кнопке мыши
- 26. ActionEvent - Изменение кнопки JLabel на кнопке
- 27. Изменение вида навигационного контроллера на кнопке
- 28. Изменение фрагмента str's
- 29. Изменение фрагмента извещателя вещания
- 30. Изменение значения фрагмента вкладки
Взгляните на FragmentManager (http://developer.android.com/reference/android/app/FragmentManager.html) и FragmentTransaction (http://developer.android.com/reference/android/app/ FragmentTransaction.html) – Sprigg