Intereting Posts
Эмулятор не возвращает фактическую ширину и высоту для разрешения 320×240 Zoom и Panning ImageView Android Как отправить json из android в php? Нормальные карты против нормальных координат Почему Android O не работает с «не принадлежит этому FragmentManager!» Вложенные фрагменты – IllegalStateException "Не удается выполнить это действие после onSaveInstanceState" Fragment.onCreateView имеет пустой контейнер Проверьте, является ли строка номером в android Android Studio AndroidManifest.xml vs build.gradle Есть ли реальная польза от использования пешеходного перехода для Android 4.4 и выше? Android volley – переопределить тайм-аут кэша для запроса JSON Должен ли передавать контекст большинству классов признаком плохого дизайна? OnDragListener – есть ли библиотека совместимости для уровней Android <11? Импорт библиотеки Facebook в Android Studio: Не удалось найти свойство «ANDROID_BUILD_SDK_VERSION» Как я могу заставить давление памяти для отладки Android?

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

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

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;