java.lang.ClassCastException: cn.leancloud.LCObject cannot be cast to com.example.secondhandtest.Goods
这是查询的方法
fun SearchAllGoods(recyclerView:RecyclerView){
val query:LCQuery<Goods> =LCQuery("Goods")
query.findInBackground().subscribe(object :Observer<List<Goods>>{
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: List<Goods>) {
if (t!=null){
val list = t
if (list!=null && list.size>0){
GoodsList=list
Log.e(TAG, "查询成功"+list, )
//
GoodsAdapter=GoodsAdapter(GoodsList)
recyclerView.adapter=GoodsAdapter
Log.e(TAG, "SearchGoods", )
Log.e(TAG, ""+GoodsList, )
}
}
}
override fun onError(e: Throwable) {
}
override fun onComplete() {
}
})}
这是recyclerview 绑定视图的方法,程序运行到//todo 报错就不运行了
override fun onBindViewHolder(holder: GoodsAdapter.ViewHolder, position: Int) {
Log.e(TAG, "GoodsAdapter绑定数据", )
//todo 报错
val goods: Goods? =goodsList?.get(position)
Log.e(TAG, "GoodsAdapter获取对应的数据", )
holder.GoodsName.text=goods?.GoodsTitle
holder.GoodsMonehy.text= goods?.GoodsMoney.toString()
holder.GoodsMessage.text=goods?.GoodsMessage
val user:User= LCUser.getCurrentUser(User::class.java)
holder.GoodsUser.text=user.username
}
这是我Goods的实体类
class Goods: LCObject() {
@SerializedName("GoodsTitle")
var GoodsTitle:String=""
@SerializedName("GoodsMessage")
var GoodsMessage:String=""
@SerializedName("GoodsMoney")
var GoodsMoney:Int=0
var GoodsUser: User? =null
@SerializedName("image")
var image: BmobFile?=null
}
这是我用户的实体类
package com.example.secondhandtest
import cn.leancloud.LCUser
class User : LCUser(){
var UserName:String=""
var UserPassWord:String=""
var usermoney:Int=0
}
在查询方法里,能成功的返回数据
[{"className":"Goods","serverData":{"GoodMoney":15,"GoodsTitle":"蔡徐坤","createdAt":"2022-08-31T09:50:17.482Z","GoodsUser":{"className":"_User","serverData":{"objectId":"630f266f747f46052d2517e7"}},"GoodsMessage":"鸡你太美","objectId":"630f2ed9c4ae9e05acbef20a","updatedAt":"2022-08-31T09:50:52.237Z"}}]
但是在适配器赋值的时候提示类型错误,请问怎么解决?
-
创建时间
22年9月1日
-
最后回复
22年9月5日
-
3
回复
-
1.0K
浏览
-
2
用户
-
1
链接