Как обратиться к переменной из другого файла функций? (котлин, андроид)

Действия программы такие: объявляется переменная, ей присваивается значение из поля, в дальнейшем с ней производятся какие-то действия (функции все будут во втором файле), новое значение заносится в поле, для очистки поля по нажатию на кнопку значение стирается. И кнопка, и поля в одном фрагменте активити, активити одно.

В MainAktivity.kt

class MainActivity : AppCompatActivity() {
    public var date1 : EditText? = null
    public var date2 : EditText? = null
    public val dataString1: String = date1?.text.toString()
    public val dataString2: String = date2?.text.toString()
    ............
    btnRunClear.setOnClickListener {
        this.ClearAll()
    }

в MyFuncs.kt (date1 и date2 подсвечиваются красным цветом, ошибка Unresolved reference, использование fun Activity.ClearAll() та же ошибка)

fun Context.ClearAll() {
    this.date1?.text?.clear()
    this.date2?.text?.clear()
}

введите сюда описание изображения


Ответы (1 шт):

Автор решения: doomsilka

В экстеншен функции Context.ClearAll() "this" - это Context. У Context нет полей date1 и date2. Вы можете поменять Context.ClearAll() на MainActivity.ClearAll() или использовать ClearAll() как функцию класса MainActivity. Тогда вы избежите "Unresolved reference".

И пара советов на последок: Не используйте фичи языка которые вы не понимаете(зачем вам экстеншен?). Подтяните понимание ООП. Почитайте за код стайл в котлине(название методов принято писать с маленькой буквы, если писать с большой - можно при беглом прочтении путать с Классом). И внятно формулируйте желаемый результат.

→ Ссылка