Próbuję dokonać porównania ciągów z powiązaniem danych XML w Androidzie, ale nie mam odpowiednich wyników.Porównanie łańcuchów na Androidzie Data Binding
Oceniam moje wyrażenie w kodzie, próbuję notice.action == "continue"
i jest to fałsz. W wiązaniu danych oczywiście jest to również fałsz.
android:textColor='@{ notice.action == "continue" ? @color/enabledPurple : @color/disabledGray}'
Sprawdza się tylko wtedy, gdy wykonuję kod notice.action.equals("continue")
. To jest zamierzone zachowanie. Mój problem polega na tym, że nie mogę tego osiągnąć za pomocą wyrażeń wiążących dane, ponieważ nie będą one uruchamiać metod takich jak equals
. Co mogę zrobić, aby zastąpić wyrażenie porównawcze innym, które działa?
Używam this guide.
Edycja: Myliłem się, metody są dozwolone w XML. Czy to w ten sposób:
android:textColor='@{ notice.action.equals("continue") ? @color/enabledPurple : @color/disabledGray}'
Dlaczego mówisz, że nie będzie uruchomić metodę taką jak .equals()? Metody są obsługiwane w wyrażeniach wiążących dane. –
Ponownie czytając dokumenty, znalazłem. Sądzę, że przeszedłem przez to. Dziękuję za wskazanie tego, spróbuję w moim kodzie! –
Czy mógłbyś udostępnić kod dla używania equals() w databinding – anoopg87