77 lines
3.3 KiB
Kotlin
Raw Normal View History

2024-04-26 19:57:44 +08:00
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<Book_rank>()
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<Book_info_bmob>()
queryHotBooks.order("-countOfReaders") // 根据 countOfReaders 降序排序
queryHotBooks.setLimit(10) // 限制查询结果的数量为3
queryHotBooks.findObjects(object : FindListener<Book_info_bmob>() {
override fun done(books: List<Book_info_bmob>?, 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)
}
}
}