package com.zjgsu.jianshu import android.os.Bundle import android.text.TextUtils import android.widget.SearchView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.StaggeredGridLayoutManager import cn.bmob.v3.Bmob import cn.bmob.v3.BmobQuery import cn.bmob.v3.exception.BmobException import cn.bmob.v3.listener.FindListener import com.zjgsu.jianshu.* import com.zjgsu.jianshu.Adapter.BillboardAdapter import com.zjgsu.jianshu.Adapter.BookRankAdapter import com.zjgsu.jianshu.Bmob.Book_info_bmob import kotlinx.android.synthetic.main.activity_bookrank.* import kotlinx.android.synthetic.main.activity_main.* class HotBookActivity: AppCompatActivity() { private var hotbookList=ArrayList() lateinit var adapter:BookRankAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_bookrank) Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob adapter= BookRankAdapter(hotbookList) bookrank_recyclerView.layoutManager=StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL) bookrank_recyclerView.adapter=adapter bookrank_swipeRefresh.setOnRefreshListener { loadBookRanks() //下拉刷新 } loadBookRanks() bookrank_title.text="热门图书榜单" } private fun loadBookRanks(){ val queryHotBooks = BmobQuery() queryHotBooks.order("-countOfReaders") // 根据 countOfReaders 降序排序 queryHotBooks.setLimit(10) // 限制查询结果的数量为3 queryHotBooks.findObjects(object : FindListener() { override fun done(books: List?, e: BmobException?) { bookrank_swipeRefresh.isRefreshing = false if (e == null) { // 检查 books 是否非空 if (books != null && books.isNotEmpty()) { hotbookList.clear() // 清空当前列表 // 遍历 books 并转换为 Book_rank 类型后添加到列表 books.forEach { b -> val bookRank = Book_rank( name = b.name, picUrl = b.picture.url, score="0.0", courtOfReaders = b.countOfReaders, author=b.author_name, intro=b.introduce ) hotbookList.add(bookRank) adapter.notifyDataSetChanged() // 确保在这里更新适配器 } } } else { // 处理错误情况 Toast.makeText( this@HotBookActivity, "Failed to retrieve books: ${e.message}", Toast.LENGTH_SHORT ).show() } } }) } private fun returnTOCity(){ bookrank_return.setOnClickListener{ NavigationHelper.navigateTo(this, MainActivity::class.java) } } }