需要帮助在android中编写视图模型代码,以获取改装后的数据吗
我是android新手,一直在为视图模型编写代码,我不知道如何管理来自存储库和远程服务器的数据,以下是我迄今为止所做的尝试,如有任何帮助,将不胜感激 这是我的存储库数据源需要帮助在android中编写视图模型代码,以获取改装后的数据吗,android,kotlin,android-mvvm,Android,Kotlin,Android Mvvm,我是android新手,一直在为视图模型编写代码,我不知道如何管理来自存储库和远程服务器的数据,以下是我迄今为止所做的尝试,如有任何帮助,将不胜感激 这是我的存储库数据源 class RepositoryDataSource constructor(private val roomDataSource: QuranLocalDataSource, private val remoteDataSource: RemoteData
class RepositoryDataSource constructor(private val roomDataSource: QuranLocalDataSource,
private val remoteDataSource: RemoteDataSource) : Repository {
override fun saveParaData(paraData: List<ParaData>) { roomDataSource.getQuranDao().insertParaData(paraData) }
override fun saveSurahData(surahData: List<SurahData>) { roomDataSource.getQuranDao().insertSurahData(surahData) }
//get Parah list from db
override fun getParaFromDB(): LiveData<List<ParaData>> = roomDataSource.getQuranDao().getParaData()
//get SurahList from dm
override fun getSurahDataFromDB(): LiveData<List<SurahData>> = roomDataSource.getQuranDao().getSurahData()
//get parahList from server
override fun getParahListFromAPI() {
remoteDataSource.getParahListFromAPI()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ result ->
Completable.fromAction {
deleteParaData()
val data = result.body()
saveParaData(data?.get(0)!!.paraData)
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : CompletableSubscriber {
override fun onSubscribe(@NonNull subscription : Subscription) {
}
override fun onCompleted() {
Log.i("Repository onCompleted", "DataSource has been Populated")
}
override fun onError(@NonNull e: Throwable) {
e.printStackTrace()
Log.e("onError", "DataSource hasn't been Populated")
}
})
},
{ error -> Log.e("ERROR", "{$error.message}") },
{ Log.d("getParahListFromAPI", "completed") })
}
//get surahList from server
override fun getSurahListFromAPI() {
}
}
按照指南操作。你可以通过谷歌获得todo应用程序示例。嗨@Abdul Rahman Rathore我向你推荐这门课程太棒了@Abu Noman谢谢我这么做了
interface Repository {
fun saveParaData(paraData: List<ParaData>)
fun getParaFromDB(): LiveData<List<ParaData>>
fun saveSurahData(surahData: List<SurahData>)
fun getSurahDataFromDB(): LiveData<List<SurahData>>
fun getParahListFromAPI()
fun getSurahListFromAPI()
}
class ParahViewModel : ViewModel(){}