我是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以进行可变操作