Анко доступ к значениям в пользовательском интерфейсе из деятельности - PullRequest
0 голосов
/ 27 октября 2018

Я новичок в 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 для изменяемого действия

...