代码之家  ›  专栏  ›  技术社区  ›  Fawad Bin Tariq

Kotlin中的标签式活动(Android Studio)

  •  -1
  • Fawad Bin Tariq  · 技术社区  · 7 年前

    @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所需的片段”

    2 回复  |  直到 7 年前
        1
  •  1
  •   Fawad Bin Tariq    7 年前

    通过使用解决

    class TabOne : android.support.v4.app.Fragment() { }
    

    class TabOne : android.app.Fragment() { }
    
        2
  •  1
  •   Rajesh Dalsaniya    7 年前

    您需要将选项卡类扩展为片段。 确保需要向后导入
    兼容性

    import android.support.v4.app.*
        class TabOne: Fragment() {
             // Implementations 
        }
    

    完成所有课程,然后尝试