タグ付けされた質問 「android-livedata」

7
MutableLiveDataのsetValue()とpostValue()の違い
の値を変更するには、2つの方法がありますMutableLiveData。しかし、違いは何ですsetValue()&postValue()ではMutableLiveData。 同じドキュメントは見つかりませんでした。 こちらがMutableLiveDataAndroidのクラスです。 package android.arch.lifecycle; /** * {@link LiveData} which publicly exposes {@link #setValue(T)} and {@link #postValue(T)} method. * * @param <T> The type of data hold by this instance */ @SuppressWarnings("WeakerAccess") public class MutableLiveData<T> extends LiveData<T> { @Override public void postValue(T value) { super.postValue(value); } @Override public void setValue(T …

3
LiveDataの個別のMutableLiveDataサブクラスがあるのはなぜですか?
とメソッドを公開することだけMutableLiveDataが異なるように見えますが、それらは保護されています。LiveDatasetValue()postValue()LiveData この変更のために別のクラスを作成し、それらのメソッドLiveData自体を単にパブリックとして定義しない理由は何ですか? 一般的に言って、そのような形式の継承(特定のメソッドの可視性を高めることが唯一の変更である)はよく知られた方法であり、それが役立つ可能性のあるいくつかのシナリオは何ですか(すべてのコードにアクセスできると仮定)?

4
ViewModelからのLiveDataの観察
データフェッチ(具体的にはFirebase)を処理する別のクラスがあり、通常はそこからLiveDataオブジェクトを返し、非同期で更新します。返されたデータをViewModelに保存したいのですが、問題は、その値を取得するために、データフェッチクラスから返されたLiveDataオブジェクトを監視する必要があることです。監視メソッドには最初のパラメーターとしてLifecycleOwnerオブジェクトが必要でしたが、ViewModel内にそれがないことは明らかであり、ViewModel内のActivity / Fragmentへの参照を保持することになっていないことはわかっています。私は何をすべきか?

3
Kotlin FlowとAndroid LiveData
Kotlin Flowについて質問があります 複数のフラグメントからのLiveDataを観察できます。これをFlowで実行できますか?はいの場合はどうですか? map&を使用して、1つのLiveDataから複数のLiveDataを取得できますswitchMap。単一のソースフローから複数のフローを作成する方法はありますか? 使用してMutableLiveData、私は、変数の参照を使用してどこからでもデータを更新することができます。Flowで同じことをする方法はありますか? 私は次のようなユースケースを持っています。単一のソースフローを提供するSharedPreferences使用法callbackFlow{...}を観察します。そのフローから、キーと値のペアごとに複数のフローを作成します。 これらはばかげた質問に聞こえるかもしれません。RxとFlowの世界は初めてです。

2
viewLifecycleOwnerをLifecycleOwnerとして使用する
断片があります: class MyFragment : BaseFragment() { // my StudentsViewModel instance lateinit var viewModel: StudentsViewModel override fun onCreateView(...){ ... } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) viewModel = ViewModelProviders.of(this).get(StudentsViewModel::class.java) updateStudentList() } fun updateStudentList() { // Compiler error on 'this': Use viewLifecycleOwner as the LifecycleOwner viewModel.students.observe(this, Observer { //TODO: …

2
Kotlin FlowとLiveData
前回のGoogle I / Oで、Jose AlcerrecaとYigit Boyar は、LiveDataを使用してデータをフェッチすることはもうやめるべきだと言っていました。ここで、ワンショットフェッチに中断関数を使用し、Kotlinのフローを使用してデータストリームを作成する必要があります。コルーチンはワンショットフェッチや挿入などの他のCRUD操作に最適であることに同意します。しかし、データストリームが必要な場合、Flowがどのような利点をもたらすかわかりません。LiveDataも同じことをしているようです。 フローの例: ViewModel val items = repository.fetchItems().asLiveData() リポジトリー fun fetchItems() = itemDao.getItems() ダオ @Query("SELECT * FROM item") fun getItems(): Flow<List<Item>> LiveDataの例: ViewModel val items = repository.fetchItems() リポジトリー fun fetchItems() = itemDao.getItems() ダオ @Query("SELECT * FROM item") fun getItems(): LiveData<List<Item>> また、コルーチンとFlowを使用してRoomまたはRetrofitを操作するプロジェクトの例もいくつか見たいと思います。コルーチンがワンショットフェッチに使用され、変更時にデータを手動で再フェッチするGoogleのToDoサンプルのみが見つかりました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.