Anko从Activity中访问UI中的值

时间:2018-10-27 07:47:00

标签: android kotlin kotlin-android-extensions anko

我是anko的新手,我已经很喜欢它。但是,我似乎找不到从活动中访问UI设计中定义的值的方法。

这是一个例子:

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
            }
        }
    }
}

假设我希望能够从MainActivity中为 textDisplay 设置字符串值。如果我在xml中进行此操作,则可以继续使用 f ind.View.by.id 并使用 setText ,该工作将完成。但是,我似乎在anko中找不到任何解决方案。

我从另一个stackoverflow post中读到,可以使用 lateinit var 进行声明,就像全局变量一样,然后可以从任何地方访问它。但这是唯一的方法吗?

我的意思是,确保我可以将所有UI功能代码都包含在UI活动中。但是,如果项目变大,这将变得非常混乱,并且我正在尝试将UI设计与功能代码分开。

任何帮助将不胜感激。 谢谢

编辑1:更改为var以进行可变操作

0 个答案:

没有答案