簡體   English   中英

將 java 類轉換為從 FragmentStatePageAdapter 繼承的 kotlin

[英]convert java class to kotlin inherited from FragmentStatePageAdapter

我正在做一個項目,我唯一的幫助是在 Java 中,這讓我很難轉換它或將它傳遞給 kotlin,這是我必須傳遞給 kotlin 的代碼:

private class ScreenSliderPagerAdapter extends FragmentStatePagerAdapter
    {
        public ScreenSliderPagerAdapter(@NonNull FragmentManager fm)
        {
            super(fm);
        }
        @NonNull
        @Override
        public Fragment getItem(int position)
        {
            switch(position)
            {
                case 0:
                    SwipeFragement1 tab1 = new SwipeFragement1();
                    return tab1;
                case 1:
                    SwipeFragement2 tab2 = new SwipeFragement2();
                    return tab2;
                case 2:
                    SwipeFragemen3 tab3 = new SwipeFragement3();
                    return tab3;
            }
            return null;
        }
        @Override
        public int getCount()
        {
            return 0:
        }
    }

當試圖轉換它時,它或多或少是這樣的:

private class ScreenSliderPagerAdapter (fm : FragmentManager @NonNull) : FragmentStatePagerAdapter
    {
        var fm : FragmentManager = fm
        
        constructor():this()
        {
            super(fm)
        }
        @NonNull
        @Override
        public fun getItem(position: Int): SwipeFragement1?
        {
            var tab : SwipeFragement1? = null
            when(position)
            {
                0 -> tab = SwipeFragement1()
                1 -> tab = SwipeFragement2()
                2 -> tab = SwipeFragement3()
            }
            return tab
        }
        @Override
        public fun getCount(): Int
        {
            return 0
        }
    }

據我所知,Kotlin 看起來非常糟糕,如下面的截圖所示:

在此處輸入圖片說明

萬一你想知道我正在嘗試分割一個活動

你得到這個錯誤是因為 Kotlin 代碼有一些語法錯誤。 這是正確的。

private class ScreenSliderPagerAdapter(fm: FragmentManager) :
    FragmentStatePagerAdapter(fm) {

    val NUM_TABS = 3
    
    override fun getItem(position: Int): Fragment {
        return when (position) {
            0 -> SwipeFragement1()
            1 -> SwipeFragement2()
            else -> SwipeFragement3()
        }
    }

    override fun getCount(): Int {
        return NUM_TABS
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM