Как обратиться к переменной из другого файла функций? (котлин, андроид)
Действия программы такие: объявляется переменная, ей присваивается значение из поля, в дальнейшем с ней производятся какие-то действия (функции все будут во втором файле), новое значение заносится в поле, для очистки поля по нажатию на кнопку значение стирается. И кнопка, и поля в одном фрагменте активити, активити одно.
В 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 шт):
В экстеншен функции Context.ClearAll() "this" - это Context. У Context нет полей date1 и date2. Вы можете поменять Context.ClearAll() на MainActivity.ClearAll() или использовать ClearAll() как функцию класса MainActivity. Тогда вы избежите "Unresolved reference".
И пара советов на последок: Не используйте фичи языка которые вы не понимаете(зачем вам экстеншен?). Подтяните понимание ООП. Почитайте за код стайл в котлине(название методов принято писать с маленькой буквы, если писать с большой - можно при беглом прочтении путать с Классом). И внятно формулируйте желаемый результат.
