Intereting Posts
Программно использовать setTextSize для? Attr / textAppearanceLarge Как вызвать метод onCreateView или обновить фрагмент? Ошибка "не удалось получить модель типа" BasicIdeaProject "с использованием Gradle distribution" в Windows? Параметр Android Camera setPictureSize вызывает штриховое изображение Как получить представление об фрагменте вне OnCreateView () EditText getText () возвращает пустую строку Как удалить импортированный модуль в Android Studio Тестирование устройств Android – проблемы с разрешением и проверкой Обновить пользовательский адаптер курсора после удаления строки базы данных Как в диалоговом окне Android (полноэкранный, встроенный), как в приложении Календаря Google Совместное использование RxBindings Наблюдаемые события между несколькими подписчиками AndroidViewModel против ViewModel Как копировать iOS 7 Blur View в Android NullPointerException для прослушивателя фрагментов Как реализовать салфетку между Фрагментами?

Общий метод не распознает общий тип при передаче его в качестве параметра

Я пытаюсь создать динамическое создание экземпляра:

private <F extends Fragment> void addFragment(F fragment) { fragment.setArguments(new Bundle()); FragmentTransaction tx = getFragmentManager().beginTransaction(); tx.add(R.id.container, fragment); tx.submit(); } 

Однако компилятор отклоняет tx.add(R.id.container, fragment) потому что для add(int, F) нет сигнатуры метода!

Как заставить метод add () понять, что F действительно является фрагментом?

Заранее спасибо 🙂

Это связано с тем, что вы импортировали неправильный Fragment в свой класс, что он несовместим с аргументом фрагмента метода add.

Так как вы использовали getFragmentManager() что означает, что вам нужно использовать библиотеку non support для фрагмента, чтобы позволить универсальному быть совместимым с методом add.

Убедитесь, что ваш импорт выглядит следующим образом:

 import android.app.Fragment;