在数据绑定中切换大小写

Rav*_*avi 3 data-binding android android-switch android-databinding

是否可以使用android Data Binding编写switch case?

假设我有3个条件,比如

value == 1 then print A
value == 2 then print B
value == 3 then print C
Run Code Online (Sandbox Code Playgroud)

有没有办法通过使用数据绑定在xml中执行此操作?

我知道我们可以实现条件语句

android:visibility="@{age < 13 ? View.GONE : View.VISIBLE}"
Run Code Online (Sandbox Code Playgroud)

但在这里我正在寻找切换案例陈述.

Jan*_*ski 5

不,据我所知,这是不可能的,也会使xml文件真的不可读.我认为最好在业务逻辑中实现它,而不是在布局文件中实现.

  • 答案是对的.不支持`switch`语句.您应该将该登录名放在视图模型属性中,以便布局文件保持可读性.也就是说,除非你使用复数资源. (2认同)

BVa*_*tur 5

在单独的 java 类中的业务逻辑中这样做肯定更好,但是如果您想在 xml 文件中使用数据绑定来执行此操作,那么您必须使用更多的内联 if 语句来执行此操作,如下所示:

android:text='@{TextUtils.equals(value, "1") ? "A" : TextUtils.equals(value, "2") ? "B" : TextUtils.equals(value, "3") ? "C" : ""}'
Run Code Online (Sandbox Code Playgroud)

如您所见,您必须在 else 状态中添加每个下一个条件,这使得阅读起来很糟糕。