我正在關注 kotlin 指南。我有一個這樣的錯誤名稱“
“未解決的參考:newInstance”
我該如何解決?
這是我在 android studio 中的代碼。
inner class PagerAdapter : FragmentStateAdapter {
constructor(fm: FragmentManager, lc: Lifecycle) : super(fm, lc)
override fun getItemCount() = 3
override fun createFragment(position: Int): Fragment {
var imageId:Int = 0
var title:String = ""
var details1:String = ""
var details2:String = ""
var fragment:PageFragment? = null
when(position) {
0 -> {
imageId = R.drawable.poster1
title = "${position 1}. name"
details1 = "312,745"
details2 = "15"
fragment = PageFragment.newInstance(imageId, title, details1, details2)
}
1 -> {
imageId = R.drawable.poster2
title = "${position 1}. name"
details1 = "166,604"
details2 = "15"
fragment = PageFragment.newInstance(imageId, title, details1, details2)
}
2 -> {
imageId = R.drawable.poster3
title = "${position 1}. name"
details1 = "51,608"
details2 = "12"
fragment = PageFragment.newInstance(imageId, title, details1, details2)
}
else -> {
fragment = PageFragment.newInstance(0, "", "", "")
}
}
return fragment
}
}
所有“newInstance”上都是紅色的。
隨著版本的變化,'newInstance' 消失了嗎?
uj5u.com熱心網友回復:
正如評論中所寫,PageFragment它不是官方 Android SDK 的一部分,而是您或您的同事自己撰寫的。
也許您的一位同事替換了那里的功能,但沒有看到源代碼,PageFragment我們無法提供幫助。
只是一個快速提示,您可以通過將整個函式轉換為運算式來擺脫var內部的宣告,例如:createFragment
override fun createFragment(position: Int): Fragment {
return when (position) {
0 -> PageFragment.newInstance(
imageId = R.drawable.poster1,
title = "${position 1}. name",
details1 = "312,745",
details2 = "15",
)
1 -> PageFragment.newInstance(
imageId = R.drawable.poster2,
title = "${position 1}. name",
details1 = "166,604",
details2 = "15",
)
2 -> PageFragment.newInstance(
imageId =R.drawable.poster3,
title = "${position 1}. name",
details1 = "51,608",
details2 = "12",
)
else -> PageFragment.newInstance(0, "", "", "")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/431564.html
下一篇:設計原則之【介面隔離原則】
