問題タブ [android-viewmodel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Transformation からのデータ バインディング LiveData - Android Kotlin
私はkotlinとandroidアーキテクチャのコンポーネントを学んでいます。Googleマップのマップトグルボタンの簡単な使用例があります。
データ バインディングを使用して、マップのトグル ボタン ラベルを ViewModel の MutableLiveData フィールドにバインドしたいと考えています。
アクティビティの onCreate メソッドから MapViewModel に mapType val を設定します。私が正しく理解していれば、Transformations.map の使用により mapLabel val が変更されるはずです。
機能していません...なぜですか?
これが私のバージョンです:
- Android スタジオ 3.2 カナリア 4
- kotlin_version = '1.2.21'
- サポート = "27.1.0"
- arch_core = "1.1.0"
- データバインディング = "3.2.0-alpha04"
MapViewModel.kt
activity_maps.xml
MapsActivity.kt
アクティビティに文字列を設定する MutableLiveData オブジェクトを使用してバインディングをテストしましたが、正常に動作します。問題は Transformations.map にあるようです - 私はそれを間違って理解しましたか?
また、デバッグ中に、ViewModel の mapType val にオブザーバーがないことがわかります (これが正しいか間違っているかはわかりませんが、興味深いだけです)。