بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
درخواست راهنمایی درباره تبدیل کلاس UTab به کلاس Kotlin
سلام
من حین تبدیل فایل جاوایی کلاس UTab.java به UTab.kt به ارور زیر بر خوردم حقیقتاً نتونستم این مشکل رو حل کنم
میفهمم از چی خطا میگیره ولی نمیدونم چجوری باید رفع بشه ممنون میشم راهنمایی کنید
از متد getItem خطا گرفته
| Return type of 'getItem' is not a subtype of the return type of the overridden member 'public abstract fun getItem(p0: Int): Fragment! defined in android.support.v4.app.FragmentPagerAdapter' |
package project.widget
import android.app.Activity
import android.support.design.widget.TabLayout
import android.support.v4.app.Fragment
import android.support.v4.app.FragmentManager
import android.support.v4.app.FragmentPagerAdapter
import android.support.v4.view.ViewPager
import android.support.v7.app.AppCompatActivity
import android.view.View
import app.vahidgarousi.tablayout.R
import kotlin.reflect.KClass
class VTab(activity: AppCompatActivity, viewPager: ViewPager, tableLayout: TabLayout) {
private lateinit var adapter: Adapter
private val items = arrayListOf<Item>()
private var vTabViewPager: ViewPager = viewPager
private var tabLayout: TabLayout = tableLayout
class Item(fragmentClass: KClass<out Fragment>, title: String, icon: Int) {
private lateinit var fragment: KClass<out Fragment>
private var title: String = ""
private var icon: Int = 0
init {
try {
this.fragment = fragmentClass
this.title = title
this.icon = icon
} catch (e: InstantiationException) {
e.printStackTrace()
} catch (e: IllegalAccessException) {
e.printStackTrace()
}
}
fun getFragment(): KClass<out Fragment> {
return fragment
}
fun getTitle(): String {
return title
}
fun getIcon(): Int {
return icon
}
fun setTitle(value: String) {
title = value
}
fun setIcon(value: Int) {
icon = value
}
}
fun add(fragmentClass: KClass<out Fragment>, title: String, icon: Int) {
val item = Item(fragmentClass, title, icon)
adapter.add(item)
adapter.notifyDataSetChanged()
tabLayout.getTabAt(adapter.count - 1)!!.setIcon(icon)
}
init {
val vTabActivity: Activity = activity
val view: View = vTabActivity.window.decorView
vTabViewPager = view.findViewById(R.id.viewPager)
tabLayout = view.findViewById(R.id.tl_main)
val myAdapter = Adapter(activity.supportFragmentManager)
tabLayout.setupWithViewPager(vTabViewPager)
vTabViewPager.adapter = myAdapter
}
///////////////////////////////
class Adapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {
private val items = ArrayList<Item>()
override fun getCount(): Int {
return items.size
}
override fun getItem(position: Int): KClass<out Fragment> {
return items[position].getFragment()
}
fun getRawItem(position: Int): Item {
return items[position]
}
fun add(item: Item) {
items.add(item)
}
override fun getPageTitle(position: Int): CharSequence {
return items[position].getTitle()
}
}
}
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .