Я новичок в Anko и мне это уже нравится. Тем не менее, я не могу найти способ получить доступ к определенным значениям в моем дизайне пользовательского интерфейса из моей деятельности.
Вот пример:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//setContentView(R.layout.activity_main)
MainActivityUI().setContentView(this)
}
}
class MainActivityUI :AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>) = with(ui){
frameLayout {
var textDisplay = textView {
text = "Hello World"
}.lparams {
width = wrapContent
height = wrapContent
gravity = Gravity.CENTER
}
}
}
}
Допустим, я хочу иметь возможность установить строковое значение для textDisplay из моей MainActivity. Если бы я делал это в xml, я мог бы просто использовать f ind.View.by.id и использовать setText и работа будет выполнена. Тем не менее, я не могу найти никакого решения для этого в Anko.
Я прочитал из другого стекового потока post , что я могу использовать lateinit var , чтобы объявить его как глобальную переменную и затем получить к ней доступ из любого места. Но тогда это единственный способ сделать это?
Я имею в виду, конечно, что я могу иметь все свои коды функций пользовательского интерфейса, чтобы быть в пределах активности пользовательского интерфейса. Но это станет очень грязным, если проект станет больше, и я пытаюсь отделить свой дизайн пользовательского интерфейса от функционального кода.
Любая помощь будет благодарна.
Спасибо
edit 1: изменено на var для изменяемого действия