2017-01-30 3 views
2

Est-il possible, en utilisant peut-être RxBinding, pour lier un Observable<String> à un objet TextView telle que sa propriété .text est mise à jour avec le Observable? De toute évidence, vous pouvez subscribe() et mettre à jour manuellement le champ de texte, mais une méthode pratique semble probable. Je ne peux pas le trouver, et la documentation n'a pas donné de réponses pour moi.lier un RxJava Observable à une propriété de texte TextView

Une méthode de commodité similaire existe dans RxSwift (ou plutôt RxCocoa), dans le cas où cela clarifie ce que je demande; ça s'appelle .bindTo() là.

+0

Ceci n'est pas directement lié à votre question, mais avez-vous vu la bibliothèque Android Data Binding: https://developer.android.com/topic/libraries/data-binding/index.html? –

Répondre

3

Oui, des méthodes comme celle-ci sont présentées dans la bibliothèque de liaison rx. Par exemple pour TextView RxTextView.text(textView) crée une action pouvant être utilisée en tant qu'abonné.

Voir source code

utilisation serait quelque chose comme ça

observable.subscribe(RxTextView.text(textView), Throwable::printStackTrace); 

Soyez prudent avec la mémoire et lire docs:

Attention: L'observable créée conserve une référence forte pour voir . Se désabonner pour libérer cette référence.

Ce n'est pas la même chose que bindTo magie mais faire ce que vous avez besoin.