![](/img/trans.png)
[英]How to override inherited getter from java class in a kotlin companion object
[英]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.