2016-08-08 13 views
2

Ist es möglich, Switch Case mit Android Data Binding zu schreiben?Switch-Gehäuse in Datenbindung

Angenommen, ich habe 3 Bedingungen wie

value == 1 then print A 
value == 2 then print B 
value == 3 then print C 

Gibt es eine Möglichkeit, diese Dinge in XML zu tun, indem Sie Datenbindung?

Ich weiß, wir bedingte Anweisung wie

android:visibility="@{age < 13 ? View.GONE : View.VISIBLE}" 

hier implementieren kann, aber ich für Schaltergehäuse Aussage bin auf der Suche.

Antwort

5

Nein, soweit ich weiß ist es nicht möglich und würde auch die xml-Dateien wirklich unlesbar machen. Ich denke, es wäre besser, dies in Ihrer Geschäftslogik zu implementieren, nicht in Layoutdateien.

+2

Die Antwort ist richtig. 'switch' Anweisungen werden nicht unterstützt. Sie sollten diese Anmeldung in eine Ansichtsmodelleigenschaft einfügen, damit die Layoutdatei lesbar bleibt. Das heißt, es sei denn, Sie verwenden Plural Ressource. –

0

Was ich denke, ist besser, diese Logik in der Wirtschaft zu tun, aber wenn Sie dies tun wollen, als Sie es mit mehr inline zu tun haben, wenn Aussagen wie folgt aus:

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

Wie Sie sehen Sie um jede nächste Bedingung in else zu addieren, was alles schrecklich zu lesen macht.