私は現在アプリを構築しており、データにアクセスする単一のクラスを定義するために 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()
....
}
理由と修正方法はありますか?
ありがとう