Android Studio中Kotlin DataBinding报错<expr> expected, got ''求助
解决DataBinding中
<expr> expected, got ''报错问题 你的报错是因为DataBinding表达式里直接用单引号包裹字符串字面量,XML解析器和DataBinding表达式引擎无法正确识别这种写法。以下是修正后的代码:
第一行代码的两种修正方式
- 方式一:用XML转义双引号包裹字符串
android:text="@{String.valueOf(detailedPostVM.postLiveData.likedUsers.size) + "people liked"}"
- 方式二:用
String.format更简洁(推荐)
android:text="@{String.format("%d people liked", detailedPostVM.postLiveData.likedUsers.size)}"
第二行代码修正
android:text="@{detailedPostVM.alreadyLiked ? "LIKED" : "LIKE"}"
补充说明
在DataBinding的XML表达式中,字符串字面量必须用双引号定义,但由于外层属性已经使用了双引号,所以内层需要用XML转义字符"来替代双引号,这样解析器才能正确识别表达式中的字符串部分,避免语法错误。
内容的提问来源于stack exchange,提问作者Emre Dursun
相关产品推荐
相关产品推荐

