首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android数据绑定库与Kotlin Android扩展

Android数据绑定库与Kotlin Android扩展
EN

Stack Overflow用户
提问于 2018-05-08 04:55:58
回答 3查看 8.7K关注 0票数 50

我正在阅读关于MVVM架构如何工作以及如何使用Android数据绑定库帮助的文章。

总的来说,我理解Android数据绑定在UI层和保存要显示的信息的底层数据模型之间创建了一个链接。

Kotlin Android扩展是另一个Kotlin插件,它允许您从活动、片段和视图中恢复视图。该插件将生成一些额外的代码,允许您访问XML布局中的视图,就像它们是属性一样,具有在布局定义中使用的id的名称。

使用Android数据绑定库和Kotlin Android扩展有什么区别?它们是为了不同的目的吗?他们以什么方式互相补充?

谢谢你的回答。

EN

Stack Overflow用户

发布于 2019-03-25 16:42:55

我强烈不同意上述各点。也许是因为我讨厌用XML编写逻辑。因此,这两个评论都提到了在Kotlin扩展(KTX)中找不到的<data>标记的使用。使用kotlin和KTX,您可以做得比数据标记更好。

假设我们有

代码语言:javascript
运行
复制
data class Person(val name:String, 
                   val phone:String,
                   val isMale:Boolean,
                   val isMarried:Boolean)

在活动或片段中,我们可以

代码语言:javascript
运行
复制
fun updateView(data:Person){
    with(data){

     nameTextField.text = if(isMale){
                            "Mr. $name" 
                          } else {
                             if(isMarried){
                              "Mrs. $name"
                             }else{
                              "Miss $name"
                             }
                          }
     phoneTextField.text = phone
    }
 }

在数据绑定中,您必须执行以下操作

android:text='@{person.isMale ? "Mr."+user.name: ((user.isMarried ? "Mrs. " : "Miss. ") + user.name)}'

为了达到同样的结果,KTX代码要比数据绑定要干净得多。当您需要条件来设置值来查看数据绑定时,会变得很难看。所以对我来说,Kotlin Android扩展工作得更好。我喜欢我的代码很干净。你仍然可以使用这两个决定是你做的。

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50226081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档