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)
但在这里我正在寻找切换案例陈述.
不,据我所知,这是不可能的,也会使xml文件真的不可读.我认为最好在业务逻辑中实现它,而不是在布局文件中实现.
在单独的 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 状态中添加每个下一个条件,这使得阅读起来很糟糕。