访问没有findViewByID的视图?

时间:2019-01-16 20:57:44

标签: android kotlin view

我正在尝试在recyclerview中设置视图的文本。

我正在关注以下示例:https://antonioleiva.com/kotlin-android-extensions/

我已将他们建议的插件添加到

import kotlinx.android.synthetic.main.email_list_item.view.tv_email_subject
import kotlinx.android.synthetic.main.email_list_item.view.*
import kotlinx.android.synthetic.main.email_list_item.tv_email_subject
import kotlinx.android.synthetic.main.email_list_item.*


class EmailAdapter(val emails: Observer<List<List<String>>>, val emailcontext: Context) :
    android.support.v7.recyclerview.extensions.ListAdapter<List<List<String>>,RecyclerView.ViewHolder>(ListItemCallback()) {
    //private val mOnClickListener:OnClickListener = OnClickListener()
    private val tvEmailSubject = tv_email_subject
    private val tvEmailFrom = view.tv_email_from
    private val tvEmailSynopsis = view.tv_email_synopsis
    private val tvEmailTags = view.tv_email_tags

import语句可以识别我要访问的视图,但是在我的类中,当我尝试设置val tvEmailSubject = tv_email_subject时,即使已显式导入,它也告诉我“未解析的引用”。

如何以这种方式设置班级中的文字?

1 个答案:

答案 0 :(得分:0)

将此代码移到视图保持器中。适配器本身没有视图,因此无法提取任何这些视图引用。适配器初始化时将不会呈现它们。

您在url中显示的示例将其放在OnCreate中。视图已创建,因此可以访问这些元素。适配器的工作原理有所不同。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    welcomeMessage.text = "Hello Kotlin!"
}