我试图在我的应用程序中获取客户端列表。我做了Ktor后端,并把客户端那里。我使用Retrofit获取和DI的Hilt。
在我的安卓应用程序中,我制作了API:
@GET("/clients")
fun getAllClients(): List<Client>
在客户端列表报告实现中:
override fun getAllClients(): List<Client> {
return clientTrackerApi.getAllClients()
}
在ViewModel I中调用接口clientRepository:
init {
viewModelScope.launch {
val clients = clientsRepository.getAllClients()
}
}
在列表屏幕中:
val viewModel = hiltViewModel<ClientListViewModel>()
val myContext = LocalContext.current
LaunchedEffect(key1 = myContext) {
viewModel.viewModelScope.launch {
Log.d(TAG, "ClientsListScreen:")
}
}
我还得到了这个错误:
java. lang.非法参数异常:无法为java.util.List创建调用适配器〈android.tvz.hr.clienttracker. data. domain. model.客户端
我检查了ktor正在返回客户端,例如1个客户端:
[
{
"id": 1,
"name": "Ronnie",
"age": 23,
"picture": "content://com.android.providers.media.documents/document/image%3A18",
"aboutUser": "something"
}
]
编辑:
客户端模型:
data class Client(
val id: Int,
val name: String,
val age: Int,
val picture: String? = null,
val aboutUser: String? = null,
)
我正在尝试从我的后端获取客户端列表,以便在编写中的LazyList中显示它。
1条答案
按热度按时间7gcisfzg1#
你要么让getAllClients()函数挂起,要么返回Call〈List〉。第二个方法会让你的代码看起来像这样:
也使用自动完成由android工作室不要复制粘贴这一点,可能会有一个错误。