0

私は現在アプリを構築しており、データにアクセスする単一のクラスを定義するために Dagger Hilt を追加しました。インジェクションは正常に機能しているようですが、使用しているデータ クラスに値を格納できません。

最初にシングルトンを作成しました。これは、データ構造から値を設定/取得するためにコードで使用されます。

@Singleton
class CarListMemorySource @Inject constructor() : CarListInterface {

    private var extendedCarList: ExtendedCarList? = null

    override fun setListOfVehicles(listOfVehicles: List<item>) 
    {
        extendedCarList?.listOfVehicles = listOfVehicles
    }

}

10個のアイテムが含まれていると呼び出しsetListOfVehiclesていますが、listOfVehicules

データ構造ExtendedCarListは次のように定義されます。

data class ExtendedCarList(
    var listOfVehicles: List<item>
)

以下のviewModelの例のように、Hiltを使用してシングルトンが渡されます。

@HiltViewModel
class HomeScreenViewModel @Inject constructor(
    private val carList: CarListMemorySource
): ViewModel() {

    fun getList() {
        --> DO SOMETHING TO Get A ListA
        carList.setListOfVehicles(ListA)
    }
}

アクティビティでは、viewModel を使用して、次のようにしています。

@AndroidEntryPoint
class HomeScreenActivity: AppCompatActivity() {

   private val viewModel: HomeScreenViewModel by viewModels()

....
    viewModel.getList()
....

}

理由と修正方法はありますか?

ありがとう

4

1 に答える 1