Android - 如何使用数据绑定在{Button}中设置自己的文本

时间:2016-04-26 10:27:27

标签: android android-layout android-studio android-databinding

我刚开始使用android data-binding。我想根据用户登录状态更改按钮文本,但我得到了以下错误。

日志说语法错误,试过但我什么都没发现 的代码
enter image description here

Logcat错误

  

错误:|','?',':','??'}   错误:任务':app:compileDebugJavaWithJavac'的执行失败。   java.lang.RuntimeException:发现数据绑定错误。   **** /数据绑定错误**** msg:语法错误:不匹配的输入'gin'期待{'。','::','[','+',' - ','*',' /','%','<<','>>>','>>','< =','> =','>','< ','instanceof','==','!=','&','^','|','&&','||','?',':',' ??'}   文件:C:\用户\用户\ AndroidStudioProjects \测试\程序\ SRC \主\水库\布局\ binding_activity.xml   当地时间:30:28 - 30:61   **** \数据绑定错误****

任何帮助都会得到满足。

2 个答案:

答案 0 :(得分:2)

你的记法可能应该是这样的:

user.isLogged ? @string/logout : @string/login

答案 1 :(得分:2)

正如 Sherlock 所说"You see, but you do not observe. The distinction is clear"

我所做的是,我没有看到官方文件。你可以像这样设置文字

  

在属性值周围使用单引号时,在表达式中使用双引号很容易:

  android:text='@{user.isLogged ? "Logout" : "Login"}'
  

也可以使用双引号来包围属性值。这样做时,String文字应该使用引号或引用引号(`)。

 android:text="@{user.isLogged ? `Logout` : `Login`}" //text is inside back-quote

Data Binding Guide- String Literals