Kotlin中的标签活动(Android Studio)

时间:2017-09-27 17:30:43

标签: 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:
                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"

2 个答案:

答案 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() { }