私は、顧客の詳細を「顧客」テーブルからロードし、いくつかの詳細、つまり顧客の所在地を編集できる顧客詳細ページを持っています。顧客のロケーションは、ドロップダウンアイテムが「ロケーション」テーブルからロードされるスピナーです。アンドロイドのビューモデル間の相互通信
だから私の現在の実装では、私はCustomerViewModelとLocationViewModel
を持っCustomerActivityを持っているpublic class CustomerActivity extends AppCompatActivity {
...
onCreate(@Nullable Bundle savedInstanceState) {
...
customerViewModel.getCustomer(customerId).observe(this, new Observer<Customer>() {
@Override
public void onChanged(@Nullable Customer customer) {
// bind to view via databinding
}
});
locationViewModel.getLocations().observe(this, new Observer<Location>() {
@Override
public void onChanged(@Nullable List<Location> locations) {
locationSpinnerAdapter.setLocations(locations);
}
});
}
}
私の質問は、私は両方からのonChangedイベントの両方以来、「顧客」テーブルから値を持つ場所スピナーを設定しない方法ですviewmodelsの実行順序が異なる場合があります(顧客の読み込み速度が速く、他の場所の読み込み速度が速い場合もあります)。
私は、顧客がロードされた後でのみ場所をロードすると考えましたが、とにかく「顧客」表の値を顧客のロケーションスピナーに入力しているときに同時にロードできますか?