Intereting Posts
Как заменить фрагмент нажатием кнопки этого фрагмента? Как загружать только новые элементы в pull для обновления пользовательского списка? Размеры экрана всплеска андроида для дисплеев ldpi, mdpi, hdpi, xhdpi? – например: 1024X768 пикселей для ldpi Как решить ошибку: "!!! НЕИСПРАВНОСТЬ СДЕЛКА СДЕЛКИ !!! "В android 4.4 Как установить кнопку контроллера мультимедиа на панели уведомлений? Как реализовать нижние листы с использованием новой библиотеки поддержки дизайна 23.2 Удалите старые файлы в каталоге до тех пор, пока он не достигнет определенного размера файла JellyBean Layout Crash Отключить анимацию значка ящика в двунаправленном ящике для правого ящика Android, AsyncTask, длительные процессы и изменения ориентации Как программно открывать настройки док-станции? Предупреждение о действиях Xamarin XA0101 Установите границу и цвет фона textView Хорошие примеры туров / обучающих программ / прохождений в приложении на Android или iPhone Как использовать API-интерфейс Short URL Google для Android?

Попытка добавить фрагмент в мой контейнер-фрагмент FrameLayout

Я создал файл xml с именем editor.xml, который содержит FrameLayout. В моей основной деятельности я пытаюсь добавить свой собственный фрагмент в свой FrameLayout.

Ошибка при попытке добавить мой фрагмент:

Метод add (int, Fragment) в типе FragmentTransaction не применим для аргументов (int, editorFrag)

Однако мой редакторFrag расширяет фрагмент, поэтому я смущен тем, почему это происходит. Ниже приведен мой код для файлов, о которых я упоминал. Любая помощь приветствуется.

Editor.xml

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" /> 

editorFrag.java

 public class editorFrag extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.newlevel, container, false); } } 

MainActivity.java

 public class editorActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.editor); // Check that the activity is using the layout version with the fragment_container FrameLayout if(findViewById(R.id.fragment_container) != null) { // if we are being restored from a previous state, then we dont need to do anything and should // return or else we could end up with overlapping fragments. if(savedInstanceState != null) return; // Create an instance of editorFrag editorFrag firstFrag = new editorFrag(); // add fragment to the fragment container layout getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, firstFrag); } } } 

Ответил:

Luksprog ответил на эту проблему для меня ниже, сказав мне проверить мой импорт. Eclipse решила импортировать SDK версию Fragment вместо нужной мне версии поддержки. Спасибо вам за помощь.

Вы забыли commit() свою транзакцию.

Вы также забыли вызвать метод addtoBackStack() , иначе ваше приложение закрывается, когда вы нажмете кнопку «Назад».

Добавьте commit () как это

  getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, firstFrag).commit();