我是Kotlin的新手,最近从Java迁移,在java中使用
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
Tab1Contact tab1 = new Tab1Contact();
return tab1;
case 1:
Tab2Contact tab2 = new Tab2Contact();
return tab2;
case 2:
Tab3Contact tab3 = new Tab3Contact();
return tab3;
}
return null;
}
用于标签式活动。我为不同的选项卡创建了3个不同的类来组织数据。在Kotlin,我无法这样做,我已经尝试了
override fun getItem(position: Int): Fragment? {
when (position) {
0 -> {
val tab1 = TabOne()
return tab1 as Fragment
}
1 -> {
val tab2 = TabTwo()
return tab2 as Fragment
}
2 -> {
val tab3 = TabThree()
return tab3 as Fragment
}
}
return null
}
但应用程序崩溃,如果我只是返回tab1然后再次出现错误, "找到必需的片段TabOne"
答案 0 :(得分:1)
您需要将标签类扩展为片段。
确保您需要向后导入
兼容性
import android.support.v4.app.*
class TabOne: Fragment() {
// Implementations
}
为所有班级做,然后尝试
答案 1 :(得分:1)
使用
解决class TabOne : android.support.v4.app.Fragment() { }
而不是
class TabOne : android.app.Fragment() { }