android - Anko 从 Activity 访问 UI 中的值
问题描述
我是 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帖子中读到,我可以使用lateinit var像全局变量一样声明,然后从任何地方访问它。但这是唯一的方法吗?
我的意思是,我可以肯定我的所有 UI 功能代码都在 UI 活动中。但是如果项目变得更大,这将变得非常混乱,并且我正在尝试将我的 UI 设计与我的功能代码分开。
任何帮助将不胜感激。谢谢
编辑 1:更改为 var 以进行可变操作
解决方案
推荐阅读
- logging - 需要在hawtio中添加自定义日志
- android - 滑动删除后项目返回列表
- linux - 从带有 @-signs (compgen) 的列表中创建一个 bash 补全
- php - 如何更改刀片文件的语言环境
- r - R中的直方图
- java - Spring Boot 应用程序无法热交换更改
- django - Django Admin Automation 向管理员发送每日查询活动
- c# - 使用 WixSharp 如何在卸载时执行的自定义操作期间获取正确的 InstallDir 路径
- sql - 选择具有 X 最高值的列名
- javascript - 未捕获的错误:模板解析错误:无法绑定到“配置文件”,因为它不是“app-trnmnt-name”的已知属性