我在kotlin活动中使用ViewPager,我想在Kotlin片段中使用匕首注入。我有错误:匕首不支持注入私有字段。在Java片段中,匕首注入工作。为什么我不能在科林农场注射匕首?
在我的kotlin活动中
mPagerAdapter = object : FragmentPagerAdapter(supportFragmentManager) {
private val mFragments = arrayOf(KotlinFragment(), JavaFragment())
private val mFragmentNames = arrayOf(getString(R.string.cashdocuments), getString(R.string.action_absmysql))
override fun getItem(position: Int): Fragment {
return mFragments[position]
}
override fun getCount(): Int {
return mFragments.size
}
override fun getPageTitle(position: Int): CharSequence {
return mFragmentNames[position]
}
}我的kotlin片段
class KotlinFragment : Fragment() {
@Inject
internal var mSharedPreferences: SharedPreferences? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(activity.application as SamfantozziApp).dgaeacomponent().inject(this)
}
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
super.onCreateView(inflater, container, savedInstanceState)
val rootView = inflater!!.inflate(R.layout.activity_absserver, container, false)
return rootView
}
}消息级构建

发布于 2017-11-08 19:08:24
发布于 2018-01-23 20:12:37
你搞错了:
@Inject
internal var mSharedPreferences: SharedPreferences? = null这看起来像是将@Inject注释添加到KotlinFragment类中。
请更改为此,它将起作用:
var mSharedPreferences: SharedPreferences? = null
@Inject set下面是指向文档的链接:https://kotlinlang.org/docs/reference/annotations.html
发布于 2018-09-15 06:23:02
只要您能做到这一点,就可以更改这一行
@Inject
internal var mSharedPreferences: SharedPreferences? = null至
@set:Inject
internal var mSharedPreferences: SharedPreferences? = null在我的情况下,这件事很有魅力。
https://stackoverflow.com/questions/47187657
复制相似问题