Java Kotlin(Android Studio)中的选项卡式活动

Java 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:

我是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个不同的类来组织数据。在科特林,我无法做到这一点,我已经尝试过了

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您没有导入向后兼容的片段