Java Kotlin(Android Studio)中的选项卡式活动
我是Kotlin的新手,最近刚从Java搬来,我用的是JavaJava Kotlin(Android Studio)中的选项卡式活动,java,android,tabs,kotlin,Java,Android,Tabs,Kotlin,我是Kotlin的新手,最近刚从Java搬来,我用的是Java @Override public Fragment getItem(int position) { switch (position) { case 0: Tab1Contact tab1 = new Tab1Contact(); return tab1; case 1:
@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个不同的类来组织数据。在科特林,我无法做到这一点,我已经尝试过了
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所需的片段”
您需要将选项卡类扩展为片段。 确保需要向后导入
相容性
import android.support.v4.app.*
class TabOne: Fragment() {
// Implementations
}
对所有类执行此操作,然后尝试使用
class TabOne : android.support.v4.app.Fragment() { }
而不是
class TabOne : android.app.Fragment() { }
“找到TabOne所需的片段”->TabOne、Tab2、TabThree必须是扩展片段。像
class-TabOne:Fragment(){..}
@pRaNaY已经扩展了class-TabOne:Fragment()
,但可能还有另一个问题……所有选项卡类都像class-TabOne:Fragment(){}
,但仍然会发生这种情况。通过从TabOne:android.support.v4.app.Fragment()扩展,问题得到了解决
Cool您没有导入向后兼容的片段