JianShu/app/src/main/java/com/zjgsu/jianshu/Adapter/PerceptionAdapter.kt

124 lines
6.2 KiB
Kotlin
Raw Normal View History

2024-04-25 10:33:59 +08:00
package com.zjgsu.jianshu
import android.content.Intent
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat
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-04-25 10:33:59 +08:00
import com.zjgsu.jianshu.Activity.Perception_informationActivity
2024-04-26 19:57:44 +08:00
import com.zjgsu.jianshu.Bmob.Book_info_bmob
2024-04-25 10:33:59 +08:00
import com.zjgsu.jianshu.Bmob.Perception_bmob
import com.zjgsu.jianshu.Bmob.User_bmob
class PerceptionAdapter(val perceptionList: List<Perception>) :
RecyclerView.Adapter<PerceptionAdapter.ViewHolder>() {
2024-04-25 10:33:59 +08:00
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val perception_perception: TextView = view.findViewById(R.id.perception_content)
2024-04-25 10:33:59 +08:00
//用户头像
val perception_userIcon: ImageView = view.findViewById(R.id.perception_avatar)
val perception_posetPerson: TextView = view.findViewById(R.id.perception_username)
2024-04-25 10:33:59 +08:00
//书籍封面
val perception_bookPic: ImageView = view.findViewById(R.id.perception_bookpic)
val perception_bookName: TextView = view.findViewById(R.id.perception_bookName)
val perception_bookAuthor: TextView = view.findViewById(R.id.perception_bookAuthor)
val perception_bookInf: View = view.findViewById(R.id.perception_bookInf)
lateinit var perceptionid: String
2024-04-25 10:33:59 +08:00
}
2024-04-25 10:33:59 +08:00
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view =
LayoutInflater.from(parent.context).inflate(R.layout.perception_item, parent, false)
2024-04-25 10:33:59 +08:00
return ViewHolder(view)
}
2024-04-25 10:33:59 +08:00
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
var bookName: String = ""
2024-04-25 10:33:59 +08:00
val perception = perceptionList[position]
//设置text
holder.perceptionid = perception.perceptionid
2024-04-25 10:33:59 +08:00
val query = BmobQuery<Perception_bmob>()
query.addWhereEqualTo("objectId", perception.perceptionid)
2024-04-25 10:33:59 +08:00
//加载用户头像
query.findObjects(object : FindListener<Perception_bmob>() {
override fun done(p0: MutableList<Perception_bmob>?, p1: BmobException?) {
if (p1 == null) {
if (p0 != null && p0.size > 0) {
for (p in p0) {
bookName = p.b_name
2024-04-25 10:33:59 +08:00
//找发布用户
holder.perception_perception.text = p.perception
2024-04-25 10:33:59 +08:00
val queryUser = BmobQuery<User_bmob>()
queryUser.findObjects(object : FindListener<User_bmob>() {
override fun done(list: List<User_bmob>, e: BmobException?) {
if (e == null) {
for (i in list) {
if (p.userid.equals(i.objectId)) {
holder.perception_posetPerson.text = i.nickName
2024-04-25 10:33:59 +08:00
//加载图片
Glide.with(holder.itemView.context)
.load(i.face.url) // 确保你的Book对象有正确的图片URL
.placeholder(R.drawable.pre_load) // 可以设置一个占位图
.error(R.drawable.fail_load) // 设置加载失败的图
.into(holder.perception_userIcon)
2024-04-25 10:33:59 +08:00
}
}
} else {
Log.d("perception", "error")
2024-04-25 10:33:59 +08:00
}
}
})
2024-04-26 19:57:44 +08:00
val queryBook = BmobQuery<Book_info_bmob>()
queryBook.addWhereEqualTo("name", bookName)
2024-04-26 19:57:44 +08:00
queryBook.findObjects(object : FindListener<Book_info_bmob>() {
override fun done(list: List<Book_info_bmob>, e: BmobException?) {
2024-04-25 10:33:59 +08:00
if (e == null) {
for (i in list) {
holder.perception_bookName.text=bookName
holder.perception_bookAuthor.text=i.author_name
Glide.with(holder.itemView.context)
.load(i.picture.url) // 确保你的Book对象有正确的图片URL
.placeholder(R.drawable.pre_load) // 可以设置一个占位图
.error(R.drawable.fail_load) // 设置加载失败的图
.into(holder.perception_bookPic)
2024-04-25 10:33:59 +08:00
}
} else {
Log.d("myLog", "error")
}
}
})
}
}
}
}
})
holder.perception_bookInf.setOnClickListener() {
val intent = Intent(holder.itemView.context, BookInformationActivity::class.java)
intent.putExtra("Book_name", bookName)
2024-04-25 10:33:59 +08:00
ContextCompat.startActivity(holder.itemView.context, intent, null)
}
holder.perception_perception.setOnClickListener {
val intent = Intent(holder.itemView.context, Perception_informationActivity::class.java)
intent.putExtra("PerceptionId", holder.perceptionid)
2024-04-25 10:33:59 +08:00
ContextCompat.startActivity(holder.itemView.context, intent, null)
}
//给评论图标设置点击事件
//给评论图标设置点击事件
// holder.comment.setOnClickListener(View.OnClickListener { showPopupcomment() })
2024-04-25 10:33:59 +08:00
}
override fun getItemCount() = perceptionList.size
2024-04-25 10:33:59 +08:00
}