【问题标题】:error with default value in Databinding数据绑定中的默认值错误
【发布时间】:2017-01-07 13:08:02
【问题描述】:

Databinding document 中所述,我们可以使用default 来检查预览窗格中的值。

如果我有如下简单的字符串,它工作得很好:

android:text="@{place, default=Columbia}"

但是我有州和国家的组合,如果我使用 ,(comma) 那么它就会产生问题。

android:text="@{place, default=Gujarat, IN}"

显示错误, unexpected,如何解决?

我知道我们仍然可以使用tools:text 来检查预览窗格中的输出,但是如何在Databinding 中使用default 来解决这个问题?

【问题讨论】:

    标签: android data-binding android-databinding


    【解决方案1】:

    更改刻度会起作用,但它会显示刻度:

    android:text='@{place, default="Gujarat, IN"}'
    

    你可以做的是创建一个字符串资源:

    <string name="placeholder">Placeholder, text</string>
    

    并将其用作默认值:

    android:text='@{viewModel.placeHolder, default=@string/placeholder}'
    

    【讨论】:

    • 糟糕,我没看到。我会进一步调查:)
    • 我找到了解决办法:)
    • 太棒了:),是不是不能直接在布局文件中写入这种字符串?
    • 我不确定,但我认为是的。但也许他们会以某种方式添加此功能:)
    【解决方案2】:

    您需要引用整个值。
    例如:

    android:text='@{place, default="Gujarat, IN"}'  
    

    会起作用

    【讨论】:

      【解决方案3】:

      您可以使用双引号反引号单引号双引号。查看thisAndroid 开发者文档参考。

      第一种方式

      android:text="@{place, default=`Gujarat, IN`}"
      

      第二种方式

      android:text='@{place, default="Gujarat, IN"}'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-16
        • 2017-12-25
        • 2012-05-21
        • 2016-10-07
        • 1970-01-01
        • 1970-01-01
        • 2011-01-15
        • 2017-12-15
        相关资源
        最近更新 更多