类型在kotlin中不匹配
我是Kotlin语言和面向对象编程的新手,所以我想知道为什么在Android中从类Fragment()继承的类的实例类型是错误的。 这些是我的代码
Fragment.kt
class MyFragment: Fragment() { //do something }
MainActivity.kt
class MainActivity : AppCompatActivity() { val fm : Fragment? = MyFragment() ... }
为什么返回MyFragment类型,而不是片段? ?? 谢谢
我太傻了,我导入了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); } }
- 从android操作系统检索国家列表
- FusedLocationProviderClient服务Android Kotlin
- 将插件升级到3.0.0时出现Gradle构建错误(manifestOutputFile)
- Android:运行4个异步任务(与Rest API一起工作),完成所有任务后等待并启动另一个任务
- Gradle构建失败,新的Gradle 3.0.0
- Kotlin协同吞咽exception
- 为什么Intent构造函数在伴随对象中是不可见的? Kotlin
- Kotlin IllegalStateException:在类路径中找不到资源:kotlin / .kotlin_string_table
- Android咖啡无障碍检查失败