Доступ к представлению без findViewByID? - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь установить текст для представлений в моем обзоре переработчика.

Я следую этому примеру: 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

Операторы импорта распознают представления, к которым я пытаюсь получить доступ, но внутри моего класса, когда я пытаюсь установить val tvEmailSubject = tv_email_subject, он говорит мне «неразрешенная ссылка», даже если она явно импортирована.

Как установить текст из моего класса таким образом?

1 Ответ

0 голосов
/ 17 января 2019

Переместите этот код в держатель вида.Сам адаптер не имеет представления, и он не может получить ни одну из этих ссылок на представление.Они не будут отображаться во время инициализации адаптера.

В примере, который вы показали в URL-адресе, он включен в OnCreate.Представление было создано, и поэтому к этим элементам можно получить доступ.Адаптер работает немного по-другому.

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

    welcomeMessage.text = "Hello Kotlin!"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...