JianShu/app/src/main/java/edu/whut/jianshu/Adapter/GoodperceptionAdapter.kt

71 lines
3.6 KiB
Kotlin
Raw Normal View History

2024-05-15 12:14:20 +08:00
package edu.whut.jianshu.Adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import cn.bmob.v3.BmobQuery
import cn.bmob.v3.exception.BmobException
import cn.bmob.v3.listener.FindListener
import com.bumptech.glide.Glide
2024-05-15 12:14:20 +08:00
import edu.whut.jianshu.Data.entity.Perception_bmob
import edu.whut.jianshu.Data.entity.User_bmob
import edu.whut.jianshu.Data.vo.Perception
import edu.whut.jianshu.R
class GoodperceptionAdapter(val perceptionList: List<Perception>) : RecyclerView.Adapter<GoodperceptionAdapter.ViewHolder>() {
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val user_Image: ImageView = view.findViewById(R.id.goodperception_avatar)
val user_name: TextView = view.findViewById(R.id.user_Name)
val perception: TextView = view.findViewById(R.id.goodContent)
val evaluation_state:ImageView=view.findViewById(R.id.evaluation_state)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.goodperception_item, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val perception = perceptionList[position]
// 从 Perception_bmob 表中查找与 perception 对应的数据
BmobQuery<Perception_bmob>()
.addWhereEqualTo("objectId", perception.perceptionid)
.findObjects(object : FindListener<Perception_bmob>() {
override fun done(perceptionList: MutableList<Perception_bmob>?, exception: BmobException?) {
if (exception == null && perceptionList != null && perceptionList.isNotEmpty()) {
val perceptionData = perceptionList.first()
holder.perception.text = perceptionData.perception
if (perceptionData.evaluation == 1)
holder.evaluation_state.setImageResource(R.drawable.recommend1)
else if (perceptionData.evaluation == 2)
holder.evaluation_state.setImageResource(R.drawable.normal1)
else if (perceptionData.evaluation == 3)
holder.evaluation_state.setImageResource(R.drawable.bad1)
// 从 User_bmob 表中查找与 perceptionData.userid 对应的数据
BmobQuery<User_bmob>()
.addWhereEqualTo("objectId", perceptionData.userid)
.findObjects(object : FindListener<User_bmob>() {
override fun done(userList: MutableList<User_bmob>?, userException: BmobException?) {
if (userException == null && userList != null && userList.isNotEmpty()) {
val userData = userList.first()
holder.user_name.text = userData.nickName
Glide.with(holder.itemView.context)
.load(userData.face.url)
.placeholder(R.drawable.pre_load)
.error(R.drawable.fail_load)
.into(holder.user_Image)
}
}
})
}
}
})
}
override fun getItemCount() =perceptionList.size
}