Kotlin综合扩展为视图
我有一些意见的布局,其中一个有id title_whalemare
import kotlinx.android.synthetic.main.controller_settings.* import kotlinx.android.synthetic.main.view_double_text.* class MainSettingsController : BaseMvpController() { val title: TextView = title_whalemare override fun getLayout(): Int { return R.layout.controller_settings } }
我试着用kotlin extensions
find它,但我不能,因为我得到以下错误
由于接收器types不匹配,以下候选者都不适用
controller_settings.xml
我的错误在哪里?
什么错误试图告诉你,你只能从一个Activity
或一个Fragment
使用扩展来访问视图。 这是因为它完全相同的事情来find与给定的ID的意见,你会手动,它只是调用Activity.findViewById()
和Fragment.getView().findViewById()
,然后做types转换为View
的特定子类。 我猜你的控制器不是一个Activity
或Fragment
。
还有另一种使用扩展的方式,如果你能以某种方式将你的布局的根视图传递给你的控制器。 然后你可以做到以下几点:
val title: TextView = rootView.title_whalemare
同样,这只是替代View.findViewById()
调用和types转换。