我目前正在构建一个应用程序,并且我添加了 Dagger Hilt 以定义单个类来访问数据。注入似乎工作正常,但我无法在我使用的数据类中存储值。
我首先创建了一个 Singleton,代码使用它从数据结构中设置/获取值。
@Singleton
class CarListMemorySource @Inject constructor() : CarListInterface {
private var extendedCarList: ExtendedCarList? = null
override fun setListOfVehicles(listOfVehicles: List<item>)
{
extendedCarList?.listOfVehicles = listOfVehicles
}
}
当我调用setListOfVehicles
包含listOfVehicules
10 项但
数据结构ExtendedCarList
定义如下:
data class ExtendedCarList(
var listOfVehicles: List<item>
)
使用 Hilt 传入的单例,例如在下面的 viewModel 中:
@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()
....
}
知道为什么以及如何解决它吗?
谢谢