несоответствие типов в котлине

Я новичок в языке Kotlin и объектно-ориентированном программировании, поэтому мне интересно, почему существует неправильный тип экземпляра класса, унаследованного от класса Fragment () в android. Это мои коды

Fragment.kt

class MyFragment: Fragment() { //do something } 

MainActivity.kt

 class MainActivity : AppCompatActivity() { val fm : Fragment? = MyFragment() ... } 

Почему fm возвращает тип MyFragment , а не Fragment? ?? спасибо

Я настолько глуп, что импортирую 2 разных пакета для Fragment ()

Решение состоит в том, что 2 файла должны быть импортированы android.app.Fragment

использование

  changeFragment(MyFragment()) 

метод должен быть таким

  fun changeFragment(f: Fragment, cleanStack: Boolean = false) { val ft = supportFragmentManager.beginTransaction(); if (cleanStack) { clearBackStack(); } ft.replace(R.id.activity_base_content, f); ft.addToBackStack(null); ft.commit(); } fun clearBackStack() { val manager = supportFragmentManager; if (manager.backStackEntryCount > 0) { val first = manager.getBackStackEntryAt(0); manager.popBackStack(first.id, FragmentManager.POP_BACK_STACK_INCLUSIVE); } } 
Intereting Posts
Запрос на Android всегда дает исключение тайм-аута сокета Можно ли получить подкласс класса Kotlin из суперкласса? Аннотации JvmOverloads для основного конструктора класса Безусловная инфляция макета из адаптера просмотра. Котлин Класс Kotlin не получает свое булево значение от firebase Могу ли я использовать сторонние java-библиотеки (.jar) для разработки Android с Kotlin? Android – использование генераторов для 1 повторного вызова RxJava, возвращающего различные типы, используя тот же интерфейс Кинжал 2 не может вводить из подкомпонента (котлин) Spring Security: безопасная конечная точка на основе полномочий клиента Hibernate @OneToMany join table throws StackOverflowException Почему результат функции не работает как предложение в заявлении when в Kotlin? Непроверенный при бросании объекта типа Any? в лямбда в котлин Работа Gradle работает на локальной машине, но не работает на сервере Jenkins CI? Java Stream с :: новым для Kotlin Как я могу изменить версию компилятора Kotlin на IntelliJ?