Не удается вызвать requireActivity () из ViewHolder - PullRequest
0 голосов
/ 04 ноября 2019

Я не могу вызвать requireActivity () изнутри RecyclerView.ViewHolder, который определен внутри моего класса Fragment:

class ActFrag: Fragment() {
    ...
    class ActHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
        ...
        var mActivity = requireActivity() // requireActivity() is not in scope.
        ...
    }
    ...
}

...}

Это работает в моем Javaфайлы, но теперь, когда я работаю в Kotlin, он не хочет играть в мяч. Спасибо за поиск.

1 Ответ

1 голос
/ 04 ноября 2019

По умолчанию вложенные классы являются статическими (т. Е. Не имеют ссылки на содержащий внешний класс). Вы можете добавить ключевое слово inner, чтобы сделать их внутренним классом, что позволит вам вызывать методы внешнего класса:

inner class ActHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...