6

「顧客」テーブルから顧客の詳細をロードし、顧客の場所である詳細を編集できる顧客の詳細ページがあります。顧客の場所は、「場所」テーブルからドロップダウン項目が読み込まれるスピナーです。

したがって、私の現在の実装は、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 の両方が異なる場合があるため、「顧客」テーブルの値を使用して場所スピナーを設定する方法です (顧客の読み込みが速く、他の場所の読み込みが速い場合があります)。

顧客がロードされた後にのみ場所をロードすることを検討しましたが、「顧客」テーブルの値を顧客の場所スピナーに入力しながら、両方を同時にロードできる方法はありますか?

4

2 に答える 2