diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..b287dff
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 16a2fd9..5e60911 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -28,15 +28,16 @@
android:supportsRtl="true"
android:theme="@style/Theme.Jianshu"
android:usesCleartextTraffic="true">
+
-
-
-
-
+
+
+
+
-
+
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/BookIntro.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/BookIntro.kt
index 8b1cf21..a9a644c 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/BookIntro.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/BookIntro.kt
@@ -8,7 +8,7 @@ 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.Bmob.Book_inf_bmob
+import com.zjgsu.jianshu.Bmob.Book_info_bmob
import com.zjgsu.jianshu.Book_informationActivity
import com.zjgsu.jianshu.R
import kotlinx.android.synthetic.main.activity_book_info.*
@@ -34,10 +34,10 @@ class BookIntro:AppCompatActivity() {
}
}
private fun inits(){
- val query = BmobQuery()
+ val query = BmobQuery()
query.addWhereEqualTo("name", Bookname)
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ query.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
expandable3.text = i.introduce
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/BookShelfActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/BookShelfActivity.kt
index ea081bb..036bbb5 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/BookShelfActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/BookShelfActivity.kt
@@ -138,6 +138,7 @@ class BookShelfActivity : AppCompatActivity() {
})
}
private fun setupBottomNavigation() {
+ bookshelf.setImageResource(R.drawable.bookshelf2)
bookcity.setOnClickListener {
NavigationHelper.navigateTo(this, MainActivity::class.java)
}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/Book_informationActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/Book_informationActivity.kt
index bd9939e..32ebc6d 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/Book_informationActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/Book_informationActivity.kt
@@ -22,7 +22,7 @@ import cn.bmob.v3.listener.SaveListener
import com.zjgsu.jianshu.Activity.BookIntro
import com.zjgsu.jianshu.Adapter.GoodsuibiAdapter
import com.zjgsu.jianshu.Bmob.BookShelf
-import com.zjgsu.jianshu.Bmob.Book_inf_bmob
+import com.zjgsu.jianshu.Bmob.Book_info_bmob
import com.zjgsu.jianshu.Bmob.Perception_bmob
import kotlinx.android.synthetic.main.activity_book_info.*
import kotlinx.android.synthetic.main.title.*
@@ -45,10 +45,10 @@ class Book_informationActivity : AppCompatActivity() {
recyclerView3.layoutManager = layoutManager
var adapter = GoodsuibiAdapter(perceptionList)
recyclerView3.adapter = adapter
- val query = BmobQuery()
+ val query = BmobQuery()
query.addWhereEqualTo("name", Bookname)
- query.findObjects(object : FindListener() {
- override fun done(p0: MutableList?, p1: BmobException?) {
+ query.findObjects(object : FindListener() {
+ override fun done(p0: MutableList?, p1: BmobException?) {
if (p1 == null) {
if (p0 != null && p0.size > 0) {
for (p in p0) {
@@ -132,8 +132,8 @@ class Book_informationActivity : AppCompatActivity() {
// }
// }
// })
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ query.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
Book_name_View.text = i.name
@@ -153,8 +153,8 @@ class Book_informationActivity : AppCompatActivity() {
b_henhao.setOnClickListener {
if (Mycomment == false) {
Mycomment = true
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ query.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
i.settuijian(i.tuijian + 1)
@@ -186,8 +186,8 @@ class Book_informationActivity : AppCompatActivity() {
b_yiban.setOnClickListener {
if (Mycomment == false) {
Mycomment = true
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ query.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
i.setyiban(i.yiban + 1)
@@ -219,8 +219,8 @@ class Book_informationActivity : AppCompatActivity() {
b_buxing.setOnClickListener {
if (Mycomment == false) {
Mycomment = true
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ query.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
i.setbuxing(i.buxing + 1)
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/GoodBookActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/GoodBookActivity.kt
new file mode 100644
index 0000000..2975351
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/GoodBookActivity.kt
@@ -0,0 +1,4 @@
+package com.zjgsu.jianshu.Activity
+
+class GoodBookActivity {
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/HotBookActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/HotBookActivity.kt
new file mode 100644
index 0000000..f9695af
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/HotBookActivity.kt
@@ -0,0 +1,77 @@
+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)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/LiteratureActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/LiteratureActivity.kt
new file mode 100644
index 0000000..3baa995
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/LiteratureActivity.kt
@@ -0,0 +1,111 @@
+package com.zjgsu.jianshu
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.view.MenuItem
+import android.widget.TextView
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.GravityCompat
+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.Adapter.BookAdapter2
+import com.zjgsu.jianshu.Bmob.Book_bmob
+import kotlinx.android.synthetic.main.activity_categorypage.*
+import kotlinx.android.synthetic.main.layout_bottom_navigation.*
+
+class LiteratureActivity : AppCompatActivity() {
+ private lateinit var adapter: BookAdapter2
+ private var bookList = ArrayList()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_categorypage)
+ supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ supportActionBar?.setHomeAsUpIndicator(R.drawable.menu)
+ Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
+ val titleTextView = findViewById(R.id.categoryPage_title)
+ titleTextView.text = "文学"
+ adapter = BookAdapter2(bookList)
+ categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
+ categoryPage_recyclerView.adapter = adapter
+ categoryPage_swipeRefresh.setOnRefreshListener {
+ loadBooks() //下拉刷新
+ }
+ setupNavigation()
+ loadBooks()
+ setupBottomNavigation()
+ returnToBookcity()
+
+ }
+
+ private fun setupNavigation() { //侧边栏
+ categoryPage_navView.setCheckedItem(R.id.literature)
+ categoryPage_navView.setNavigationItemSelectedListener { menuItem ->
+ startActivity(Intent(this, when (menuItem.itemId) {
+ R.id.literature -> LiteratureActivity::class.java
+ R.id.management -> ManagementActivity::class.java
+ R.id.psychology -> PsychologyActivity::class.java
+ R.id.science -> ScienceActivity::class.java
+ R.id.philosophy -> PhilosophyActivity::class.java
+ else -> MainActivity::class.java
+ }))
+ categoryPage_drawerLayout.closeDrawers()
+ true
+ }
+ }
+
+ private fun loadBooks() {
+ val query = BmobQuery()
+ query.addWhereEqualTo("category_id", 1)
+ query.findObjects(object : FindListener() {
+ override fun done(list: List?, e: BmobException?) {
+ categoryPage_swipeRefresh.isRefreshing = false
+ if (e == null && list != null) {
+ updateBookList(list)
+ } else {
+ Log.e("LiteratureActivity", "Error refreshing books: ${e?.message}", e)
+ Toast.makeText(this@LiteratureActivity, "Failed to refresh books.", Toast.LENGTH_SHORT).show()
+ }
+ }
+ })
+ }
+
+ private fun updateBookList(list: List) {
+ bookList.clear()
+ bookList.addAll(list.map { Book(it.name, it.introduce, it.picture.url) })
+ adapter.notifyDataSetChanged()
+ }
+
+ private fun setupBottomNavigation() {
+ bookcity.setOnClickListener {
+ finish() // Simplify navigation logic
+ }
+ bookshelf.setOnClickListener {
+ startActivity(Intent(this, BookShelfActivity::class.java))
+ }
+ reading_comprehension.setOnClickListener {
+ startActivity(Intent(this, PerceptionActivity::class.java))
+ }
+ homepage.setOnClickListener {
+ startActivity(Intent(this, MyActivity::class.java))
+ }
+ }
+ private fun returnToBookcity(){
+ categoryPage_back.setOnClickListener{
+ startActivity(Intent(this, MainActivity::class.java))
+ }
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ if (item.itemId == android.R.id.home) {
+ categoryPage_drawerLayout.openDrawer(GravityCompat.START)
+ return true
+ }
+ return super.onOptionsItemSelected(item)
+ }
+}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/MainActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/MainActivity.kt
index b96d36b..0c2bb92 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/MainActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/MainActivity.kt
@@ -1,274 +1,34 @@
-//package com.zjgsu.jianshu
-//import android.content.ClipData
-//import android.content.Intent
-//import androidx.appcompat.app.AppCompatActivity
-//import android.os.Bundle
-//import android.text.TextUtils
-//import android.util.Log
-//import android.view.Menu
-//import android.view.MenuItem
-//import android.widget.Adapter
-//import android.widget.SearchView
-//import android.widget.Toast
-//import androidx.core.view.GravityCompat
-//import androidx.recyclerview.widget.StaggeredGridLayoutManager
-//import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
-//import cn.bmob.v3.Bmob
-//import cn.bmob.v3.BmobQuery
-//import cn.bmob.v3.exception.BmobException
-//import cn.bmob.v3.listener.FindListener
-//import kotlinx.android.synthetic.main.activity_main.*
-//import kotlinx.android.synthetic.main.activity_xinli.*
-//import java.io.BufferedReader
-//import java.io.IOException
-//import java.io.InputStream
-//import java.io.InputStreamReader
-//import java.lang.StringBuilder
-//import kotlin.concurrent.thread
-//
-//var UserId: String = ""
-//
-//class MainActivity : AppCompatActivity() {
-// private var user_id: String = ""
-// private var bookList = ArrayList()
-// private var bookList1 = ArrayList()
-// private var bookList2 = ArrayList()
-// private var bookList3 = ArrayList()
-// public fun Search(query: String): ArrayList {
-// val bookList1 = ArrayList()
-// for (source in bookList) {
-// if (source.name.contains(query))
-// bookList1.add(
-// Book(
-// source.name,
-// source.introduce,
-// source.tuijian,
-// source.yiban,
-// source.buxing
-// )
-// )
-// }
-// return bookList1
-// }
-//
-// override fun onCreate(savedInstanceState: Bundle?) {
-// super.onCreate(savedInstanceState)
-// setContentView(R.layout.activity_main)
-// supportActionBar?.let {
-// it.setDisplayHomeAsUpEnabled(true)
-// it.setHomeAsUpIndicator(R.drawable.menu)
-// }
-// Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
-// UserId = intent.getStringExtra("userid").toString()
-// inits()
-// val layoutManager =
-// StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)//第一个参数是列数
-// recyclerView.layoutManager = layoutManager
-// var adapter = BookAdapter(bookList)
-// recyclerView.adapter = adapter
-// swipeRefresh.setOnRefreshListener {
-// refreshBooks(adapter)
-// }
-// navView.setCheckedItem(R.id.goodbook)
-// navView.setNavigationItemSelectedListener {
-// val intentwenxue = Intent(this, WenXueActivity::class.java)
-// val intentguanli = Intent(this, guanliActivity::class.java)
-// val intentxinli = Intent(this, xinliActivity::class.java)
-// val intentkexue = Intent(this, kexueActivity::class.java)
-// val intentzhexue = Intent(this, zhexueActivity::class.java)
-// when (it.itemId) {
-// R.id.wenxue -> startActivity(intentwenxue)
-// R.id.guanli -> startActivity(intentguanli)
-// R.id.xinli -> startActivity(intentxinli)
-// R.id.zhexue -> startActivity(intentzhexue)
-// R.id.kexue -> startActivity(intentkexue)
-// }
-// drawerLayout.closeDrawers()
-// true
-// }
-// main_searchview.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
-// // 设置搜索文本监听{
-// override fun onQueryTextSubmit(query: String): Boolean { //搜索时触发事件
-// return false
-// }
-//
-// override fun onQueryTextChange(newText: String): Boolean {
-// if (TextUtils.isEmpty(newText)) {
-// bookList.clear()
-// bookList.addAll(bookList2)
-// } else {
-// bookList1.clear()
-// bookList.clear()
-// bookList1.addAll(bookList2)
-// for (source in bookList1) {
-// if (source.name.contains(newText)) {
-// bookList.add(
-// Book(
-// source.name,
-// source.introduce,
-// source.tuijian,
-// source.yiban,
-// source.buxing
-// )
-// )
-// }
-// }
-// for (i in bookList)
-// Log.d("zy123", i.name)
-// bookList3.addAll(bookList)
-// thread {
-// Thread.sleep(2000)
-// runOnUiThread {
-// initBooks()
-// adapter.notifyDataSetChanged()
-// }
-// }
-// }
-// return false
-// }
-// })
-// book_recommend.setOnClickListener {
-// val intent = Intent(this, MainActivity::class.java)
-// startActivity(intent)
-// finish()
-// }
-// book_bookshelf.setOnClickListener {
-// val intent = Intent(this, BookShelfActivity::class.java)
-// startActivity(intent)
-// finish()
-// }
-// reading_comprehension.setOnClickListener {
-// val intent = Intent(this, PerceptionActivity::class.java)
-// startActivity(intent)
-// finish()
-// }
-// self.setOnClickListener {
-// val intent = Intent(this, MyActivity::class.java)
-// startActivity(intent)
-// finish()
-// }
-// }
-//
-// private fun refreshBooks(adapter: BookAdapter) {
-// thread {
-// Thread.sleep(2000)
-// runOnUiThread {
-// initBooks()
-// adapter.notifyDataSetChanged()
-// swipeRefresh.isRefreshing = false
-// Toast.makeText(this, "刷新成功!", Toast.LENGTH_SHORT).show()
-// }
-// }
-// }
-//
-// override fun onOptionsItemSelected(item: MenuItem): Boolean {
-// when (item.itemId) {
-// android.R.id.home -> drawerLayout.openDrawer(GravityCompat.START)
-// }
-// return true
-// }
-//
-// private fun initBooks() {
-// if (bookList3.isNotEmpty()) {
-// bookList.clear()
-// bookList.addAll(bookList3)
-// val adapter = BookAdapter(bookList)
-// recyclerView.adapter = adapter
-// bookList3.clear()
-// } else {
-// bookList.clear()
-// val bmobQuery = BmobQuery()
-// bmobQuery.findObjects(object : FindListener() {
-// override fun done(list: List, e: BmobException?) {
-// var cnt: Int = 0
-// if (e == null) {
-// for (i in list) {
-// if (cnt < 15) {
-// bookList.add(
-// Book(
-// i.name,
-// i.introduce,
-// i.tuijian,
-// i.yiban,
-// i.buxing
-// )
-// )
-// val adapter = BookAdapter(bookList)
-// recyclerView.adapter = adapter
-// cnt++
-// }
-// }
-//// bookList.sortBy { it.tuijian * 100 / (it.buxing + it.tuijian + it.buxing) }
-// } else {
-// Log.d("error", "error")
-// }
-// }
-// })
-// }
-// }
-//
-//
-// private fun inits() {
-//// initsIntroduction()
-//// val books= mutableListOf(Book("围城","1111111111111",R.drawable.weicheng),Book("当尼采哭泣","2222222222",R.drawable.nicai),Book("台北人","333333333",R.drawable.taibei))
-//// for(index in 0..2) {
-//// bookList.add(books[index])
-//// bookList2.add(books[index])
-//// val adapter = BookAdapter(this@MainActivity, bookList)
-//// recyclerView.adapter = adapter
-//// }
-// val bmobQuery = BmobQuery()
-// bmobQuery.findObjects(object : FindListener() {
-// override fun done(list: List, e: BmobException?) {
-// var cnt: Int = 0
-// if (e == null) {
-// for (i in list) {
-// if (cnt < 15) {
-// bookList.add(Book(i.name, i.introduce, i.tuijian, i.yiban, i.buxing))
-// bookList2.add(Book(i.name, i.introduce, i.tuijian, i.yiban, i.buxing))
-// val adapter = BookAdapter(bookList)
-// recyclerView.adapter = adapter
-// cnt++
-// }
-// }
-//// bookList.add(Book("www","www",11,12,13))
-// } else {
-// Log.d("error", "error")
-// }
-// }
-// })
-// }
-//}
-
-
package com.zjgsu.jianshu
-import android.app.Person
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
-import android.util.Log
import android.view.MenuItem
import android.widget.SearchView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GravityCompat
import androidx.recyclerview.widget.StaggeredGridLayoutManager
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import cn.bmob.v3.Bmob
import cn.bmob.v3.BmobQuery
import cn.bmob.v3.exception.BmobException
import cn.bmob.v3.listener.FindListener
+import cn.bmob.v3.listener.QueryListListener
+import com.zjgsu.jianshu.Adapter.BillboardAdapter
import com.zjgsu.jianshu.Bmob.Book_bmob
-import com.zjgsu.jianshu.Bmob.Book_inf_bmob
-import com.zjgsu.jianshu.Bmob.User_bmob
+import com.zjgsu.jianshu.Bmob.Book_info_bmob
import kotlinx.android.synthetic.main.activity_main.*
+import kotlinx.android.synthetic.main.book_rank_item.*
import kotlinx.android.synthetic.main.layout_bottom_navigation.*
var UserId: String = ""
class MainActivity : AppCompatActivity() {
private lateinit var adapter: BookAdapter
+ private lateinit var billboardAdapter: BillboardAdapter
private var bookList = ArrayList()
+ private var listOfBookRankList: MutableList> = mutableListOf()
+ private var hotbookList=ArrayList()
+ private var goodbookList=ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
@@ -276,13 +36,17 @@ class MainActivity : AppCompatActivity() {
supportActionBar?.setHomeAsUpIndicator(R.drawable.menu)
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
adapter = BookAdapter(bookList)
- recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
+ recyclerView.layoutManager =
+ StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
recyclerView.adapter = adapter
+ billboardAdapter= BillboardAdapter(listOfBookRankList)
+ horizontal_recycler_view.layoutManager=
+ StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL)
+ horizontal_recycler_view.adapter=billboardAdapter
swipeRefresh.setOnRefreshListener {
loadBooks() //下拉刷新
}
-
main_searchview.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String): Boolean = false
@@ -297,21 +61,25 @@ class MainActivity : AppCompatActivity() {
}
})
- navView.setCheckedItem(R.id.goodbook)
+ navView.setCheckedItem(R.id.recommend)
navView.setNavigationItemSelectedListener { menuItem ->
- startActivity(Intent(this, when(menuItem.itemId) {
- R.id.wenxue -> WenXueActivity::class.java
- R.id.guanli -> guanliActivity::class.java
- R.id.xinli -> xinliActivity::class.java
- R.id.zhexue -> zhexueActivity::class.java
- R.id.kexue -> kexueActivity::class.java
- else -> MainActivity::class.java
- }))
+ startActivity(
+ Intent(
+ this, when (menuItem.itemId) {
+ R.id.literature -> LiteratureActivity::class.java
+ R.id.management -> ManagementActivity::class.java
+ R.id.psychology -> PsychologyActivity::class.java
+ R.id.philosophy -> PhilosophyActivity::class.java
+ R.id.science -> ScienceActivity::class.java
+ else -> MainActivity::class.java
+ }
+ )
+ )
drawerLayout.closeDrawers()
true
}
-
loadBooks()
+ loadBookRanks()
setupBottomNavigation()
}
@@ -331,13 +99,105 @@ class MainActivity : AppCompatActivity() {
}
adapter.notifyDataSetChanged()
} else {
- Toast.makeText(this@MainActivity, "Failed to retrieve books: ${e.message}", Toast.LENGTH_SHORT).show()
+ Toast.makeText(
+ this@MainActivity,
+ "Failed to retrieve books: ${e.message}",
+ Toast.LENGTH_SHORT
+ ).show()
}
}
})
}
+ private fun loadBookRanks(){
+ val queryHotBooks = BmobQuery()
+ queryHotBooks.order("-countOfReaders") // 根据 countOfReaders 降序排序
+ queryHotBooks.setLimit(3) // 限制查询结果的数量为3
+ queryHotBooks.findObjects(object : FindListener() {
+ override fun done(books: List?, e: BmobException?) {
+ 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=""
+ )
+ hotbookList.add(bookRank)
+ }
+ listOfBookRankList.add(hotbookList)
+ billboardAdapter.notifyDataSetChanged() // 确保在这里更新适配器
+ }
+ } else {
+ // 处理错误情况
+ Toast.makeText(
+ this@MainActivity,
+ "Failed to retrieve books: ${e.message}",
+ Toast.LENGTH_SHORT
+ ).show()
+ }
+ }
+ })
+ val queryGoodBooks = BmobQuery()
+ queryGoodBooks.findObjects(object : FindListener() {
+ override fun done(books: List?, e: BmobException?) {
+ if (e == null) {
+ // 清空之前的书籍列表
+ goodbookList.clear()
+ // 计算每本书的 good 比例,并构建 Book 对象加入列表
+ books?.let {
+ // 对书籍列表按照 good 比例进行排序
+ val sortedBooks = it.sortedByDescending { book ->
+ val total = book.tuijian + book.yiban + book.buxing
+ if (total > 0) {
+ book.tuijian.toDouble() / total.toDouble() // 计算 good 的比例
+ } else {
+ 0.0 // 如果总数为 0,比例设为 0
+ }
+ }
+ // 获取前三名书籍
+ val topThreeBooks = sortedBooks.take(3)
+ topThreeBooks.forEach { b ->
+ val tmp = b.tuijian + b.yiban + b.buxing
+ val scorePercentage = if (tmp > 0) {
+ (b.tuijian.toDouble() / tmp.toDouble()) * 100
+ } else {
+ 0.0
+ }
+ val formattedScore = String.format("%.1f%%", scorePercentage) // 将百分数格式化为带一位小数的字符串
+ val bookRank = Book_rank(
+ name = b.name,
+ picUrl = b.picture.url,
+ score = formattedScore,
+ courtOfReaders = b.countOfReaders,
+ author=b.author_name,
+ intro=""
+ )
+ goodbookList.add(bookRank)
+ }
+ listOfBookRankList.add(goodbookList)
+ billboardAdapter.notifyDataSetChanged() // 确保在这里更新适配器
+ }
+ } else {
+ // 处理错误情况
+ Toast.makeText(
+ this@MainActivity,
+ "Failed to retrieve books: ${e.message}",
+ Toast.LENGTH_SHORT
+ ).show()
+ }
+ }
+ })
+
+ }
private fun setupBottomNavigation() {
+ bookcity.setImageResource(R.drawable.bookcity2)
bookcity.setOnClickListener {
NavigationHelper.navigateTo(this, MainActivity::class.java)
}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/ManagementActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/ManagementActivity.kt
new file mode 100644
index 0000000..1d9ff3b
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/ManagementActivity.kt
@@ -0,0 +1,109 @@
+package com.zjgsu.jianshu
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.view.MenuItem
+import android.widget.TextView
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.GravityCompat
+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.Adapter.BookAdapter2
+import com.zjgsu.jianshu.Bmob.Book_bmob
+import kotlinx.android.synthetic.main.activity_categorypage.*
+import kotlinx.android.synthetic.main.layout_bottom_navigation.*
+
+class ManagementActivity:AppCompatActivity() {
+ private lateinit var adapter: BookAdapter2
+ private var bookList = ArrayList()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_categorypage)
+ supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ supportActionBar?.setHomeAsUpIndicator(R.drawable.menu)
+ Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
+ val titleTextView = findViewById(R.id.categoryPage_title)
+ titleTextView.text = "管理学"
+ adapter = BookAdapter2(bookList)
+ categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
+ categoryPage_recyclerView.adapter = adapter
+ categoryPage_swipeRefresh.setOnRefreshListener {
+ loadBooks() //下拉刷新
+ }
+ setupNavigation()
+ loadBooks()
+ setupBottomNavigation()
+ returnToBookcity()
+ }
+
+ private fun setupNavigation() {
+ categoryPage_navView.setCheckedItem(R.id.management)
+ categoryPage_navView.setNavigationItemSelectedListener { menuItem ->
+ startActivity(Intent(this, when (menuItem.itemId) {
+ R.id.literature -> LiteratureActivity::class.java
+ R.id.management -> ManagementActivity::class.java
+ R.id.psychology -> PsychologyActivity::class.java
+ R.id.science -> ScienceActivity::class.java
+ R.id.philosophy -> PhilosophyActivity::class.java
+ else -> MainActivity::class.java
+ }))
+ categoryPage_drawerLayout.closeDrawers()
+ true
+ }
+ }
+
+ private fun loadBooks() {
+ val query = BmobQuery()
+ query.addWhereEqualTo("category_id", 2)
+ query.findObjects(object : FindListener() {
+ override fun done(list: List?, e: BmobException?) {
+ categoryPage_swipeRefresh.isRefreshing = false
+ if (e == null && list != null) {
+ updateBookList(list)
+ } else {
+ Log.e("ManagementActivity", "Error refreshing books: ${e?.message}", e)
+ Toast.makeText(this@ManagementActivity, "Failed to refresh books.", Toast.LENGTH_SHORT).show()
+ }
+ }
+ })
+ }
+
+ private fun updateBookList(list: List) {
+ bookList.clear()
+ bookList.addAll(list.map { Book(it.name, it.introduce, it.picture.url) })
+ adapter.notifyDataSetChanged()
+ }
+
+ private fun setupBottomNavigation() {
+ bookcity.setOnClickListener {
+ finish() // Simplify navigation logic
+ }
+ bookshelf.setOnClickListener {
+ startActivity(Intent(this, BookShelfActivity::class.java))
+ }
+ reading_comprehension.setOnClickListener {
+ startActivity(Intent(this, PerceptionActivity::class.java))
+ }
+ homepage.setOnClickListener {
+ startActivity(Intent(this, MyActivity::class.java))
+ }
+ }
+ private fun returnToBookcity(){
+ categoryPage_back.setOnClickListener{
+ startActivity(Intent(this, MainActivity::class.java))
+ }
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ if (item.itemId == android.R.id.home) {
+ categoryPage_drawerLayout.openDrawer(GravityCompat.START)
+ return true
+ }
+ return super.onOptionsItemSelected(item)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/MyActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/MyActivity.kt
index 53f309a..42c2c52 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/MyActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/MyActivity.kt
@@ -96,6 +96,7 @@ class MyActivity : AppCompatActivity() {
setupBottomNavigation()
}
private fun setupBottomNavigation() {
+ homepage.setImageResource(R.drawable.my2)
bookcity.setOnClickListener {
NavigationHelper.navigateTo(this, MainActivity::class.java)
}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/PerceptionActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/PerceptionActivity.kt
index 015b446..ff11f0e 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/PerceptionActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/PerceptionActivity.kt
@@ -73,6 +73,7 @@ class PerceptionActivity : AppCompatActivity() {
}
}
private fun setupBottomNavigation() {
+ reading_comprehension.setImageResource(R.drawable.perception2)
bookcity.setOnClickListener {
NavigationHelper.navigateTo(this, MainActivity::class.java)
}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/Perception_informationActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/Perception_informationActivity.kt
index a412a08..88416d5 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/Perception_informationActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/Perception_informationActivity.kt
@@ -15,7 +15,7 @@ import cn.bmob.v3.listener.FindListener
import cn.bmob.v3.listener.SaveListener
import com.zjgsu.jianshu.*
import com.zjgsu.jianshu.Adapter.CommentAdapter
-import com.zjgsu.jianshu.Bmob.Book_inf_bmob
+import com.zjgsu.jianshu.Bmob.Book_info_bmob
import com.zjgsu.jianshu.Bmob.Comment_bmob
import com.zjgsu.jianshu.Bmob.Perception_bmob
import com.zjgsu.jianshu.Bmob.User_bmob
@@ -133,9 +133,9 @@ class Perception_informationActivity:AppCompatActivity() {
Log.d("myLog", p.b_name)
bookName = p.b_name
inf_bookName.text = bookName
- val queryBook = BmobQuery()
- queryBook.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ val queryBook = BmobQuery()
+ queryBook.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
if (p.b_name.equals(i.name)) {
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/PhilosophyActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/PhilosophyActivity.kt
new file mode 100644
index 0000000..da9df6f
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/PhilosophyActivity.kt
@@ -0,0 +1,110 @@
+package com.zjgsu.jianshu
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.view.MenuItem
+import android.widget.TextView
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.GravityCompat
+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.Adapter.BookAdapter2
+import com.zjgsu.jianshu.Bmob.Book_bmob
+import kotlinx.android.synthetic.main.activity_categorypage.*
+import kotlinx.android.synthetic.main.layout_bottom_navigation.*
+
+class PhilosophyActivity:AppCompatActivity() {
+ private lateinit var adapter: BookAdapter2
+ private var bookList = ArrayList()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_categorypage)
+ supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ supportActionBar?.setHomeAsUpIndicator(R.drawable.menu)
+ Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
+ val titleTextView = findViewById(R.id.categoryPage_title)
+ titleTextView.text = "哲学"
+ adapter = BookAdapter2(bookList)
+ categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
+ categoryPage_recyclerView.adapter = adapter
+ categoryPage_swipeRefresh.setOnRefreshListener {
+ loadBooks() //下拉刷新
+ }
+ setupNavigation()
+ loadBooks()
+ setupBottomNavigation()
+ returnToBookcity()
+ }
+
+ private fun setupNavigation() {
+ categoryPage_navView.setCheckedItem(R.id.philosophy)
+ categoryPage_navView.setNavigationItemSelectedListener { menuItem ->
+ startActivity(Intent(this, when (menuItem.itemId) {
+ R.id.literature -> LiteratureActivity::class.java
+ R.id.management -> ManagementActivity::class.java
+ R.id.psychology -> PsychologyActivity::class.java
+ R.id.science -> ScienceActivity::class.java
+ R.id.philosophy -> PhilosophyActivity::class.java
+ else -> MainActivity::class.java
+ }))
+ categoryPage_drawerLayout.closeDrawers()
+ true
+ }
+ }
+
+ private fun loadBooks() {
+ val query = BmobQuery()
+ query.addWhereEqualTo("category_id", 5)
+ query.findObjects(object : FindListener() {
+ override fun done(list: List?, e: BmobException?) {
+ categoryPage_swipeRefresh.isRefreshing = false
+ if (e == null && list != null) {
+ updateBookList(list)
+ } else {
+ Log.e("PhilosophyActivity", "Error refreshing books: ${e?.message}", e)
+ Toast.makeText(this@PhilosophyActivity, "Failed to refresh books.", Toast.LENGTH_SHORT).show()
+ }
+ }
+ })
+ }
+
+ private fun updateBookList(list: List) {
+ bookList.clear()
+ bookList.addAll(list.map { Book(it.name, it.introduce, it.picture.url) })
+ adapter.notifyDataSetChanged()
+ }
+
+ private fun setupBottomNavigation() {
+ bookcity.setOnClickListener {
+ finish() // Simplify navigation logic
+ }
+ bookshelf.setOnClickListener {
+ startActivity(Intent(this, BookShelfActivity::class.java))
+ }
+ reading_comprehension.setOnClickListener {
+ startActivity(Intent(this, PerceptionActivity::class.java))
+ }
+ homepage.setOnClickListener {
+ startActivity(Intent(this, MyActivity::class.java))
+ }
+ }
+ private fun returnToBookcity(){
+ categoryPage_back.setOnClickListener{
+ startActivity(Intent(this, MainActivity::class.java))
+ }
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ if (item.itemId == android.R.id.home) {
+ categoryPage_drawerLayout.openDrawer(GravityCompat.START)
+ return true
+ }
+ return super.onOptionsItemSelected(item)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/PsychologyActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/PsychologyActivity.kt
new file mode 100644
index 0000000..11bc252
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/PsychologyActivity.kt
@@ -0,0 +1,109 @@
+package com.zjgsu.jianshu
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.view.MenuItem
+import android.widget.TextView
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.GravityCompat
+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.Adapter.BookAdapter2
+import com.zjgsu.jianshu.Bmob.Book_bmob
+import kotlinx.android.synthetic.main.activity_categorypage.*
+import kotlinx.android.synthetic.main.layout_bottom_navigation.*
+
+class PsychologyActivity:AppCompatActivity() {
+ private lateinit var adapter: BookAdapter2
+ private var bookList = ArrayList()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_categorypage)
+ supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ supportActionBar?.setHomeAsUpIndicator(R.drawable.menu)
+ Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
+ val titleTextView = findViewById(R.id.categoryPage_title)
+ titleTextView.text = "心理学"
+ adapter = BookAdapter2(bookList)
+ categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
+ categoryPage_recyclerView.adapter = adapter
+ categoryPage_swipeRefresh.setOnRefreshListener {
+ loadBooks() //下拉刷新
+ }
+ setupNavigation()
+ loadBooks()
+ setupBottomNavigation()
+ returnToBookcity()
+ }
+
+ private fun setupNavigation() {
+ categoryPage_navView.setCheckedItem(R.id.psychology)
+ categoryPage_navView.setNavigationItemSelectedListener { menuItem ->
+ startActivity(Intent(this, when (menuItem.itemId) {
+ R.id.literature -> LiteratureActivity::class.java
+ R.id.management -> ManagementActivity::class.java
+ R.id.psychology -> PsychologyActivity::class.java
+ R.id.science -> ScienceActivity::class.java
+ R.id.philosophy -> PhilosophyActivity::class.java
+ else -> MainActivity::class.java
+ }))
+ categoryPage_drawerLayout.closeDrawers()
+ true
+ }
+ }
+
+ private fun loadBooks() {
+ val query = BmobQuery()
+ query.addWhereEqualTo("category_id", 3)
+ query.findObjects(object : FindListener() {
+ override fun done(list: List?, e: BmobException?) {
+ categoryPage_swipeRefresh.isRefreshing = false
+ if (e == null && list != null) {
+ updateBookList(list)
+ } else {
+ Log.e("PsychologyActivity", "Error refreshing books: ${e?.message}", e)
+ Toast.makeText(this@PsychologyActivity, "Failed to refresh books.", Toast.LENGTH_SHORT).show()
+ }
+ }
+ })
+ }
+
+ private fun updateBookList(list: List) {
+ bookList.clear()
+ bookList.addAll(list.map { Book(it.name, it.introduce, it.picture.url) })
+ adapter.notifyDataSetChanged()
+ }
+
+ private fun setupBottomNavigation() {
+ bookcity.setOnClickListener {
+ finish() // Simplify navigation logic
+ }
+ bookshelf.setOnClickListener {
+ startActivity(Intent(this, BookShelfActivity::class.java))
+ }
+ reading_comprehension.setOnClickListener {
+ startActivity(Intent(this, PerceptionActivity::class.java))
+ }
+ homepage.setOnClickListener {
+ startActivity(Intent(this, MyActivity::class.java))
+ }
+ }
+ private fun returnToBookcity(){
+ categoryPage_back.setOnClickListener{
+ startActivity(Intent(this, MainActivity::class.java))
+ }
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ if (item.itemId == android.R.id.home) {
+ categoryPage_drawerLayout.openDrawer(GravityCompat.START)
+ return true
+ }
+ return super.onOptionsItemSelected(item)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/ScienceActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/ScienceActivity.kt
new file mode 100644
index 0000000..8f2fb4a
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/ScienceActivity.kt
@@ -0,0 +1,110 @@
+package com.zjgsu.jianshu
+
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import android.view.MenuItem
+import android.widget.TextView
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.GravityCompat
+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.Adapter.BookAdapter2
+import com.zjgsu.jianshu.Bmob.Book_bmob
+import kotlinx.android.synthetic.main.activity_categorypage.*
+import kotlinx.android.synthetic.main.layout_bottom_navigation.*
+
+class ScienceActivity:AppCompatActivity() {
+ private lateinit var adapter: BookAdapter2
+ private var bookList = ArrayList()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_categorypage)
+ supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ supportActionBar?.setHomeAsUpIndicator(R.drawable.menu)
+ Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
+ val titleTextView = findViewById(R.id.categoryPage_title)
+ titleTextView.text = "科学"
+ adapter = BookAdapter2(bookList)
+ categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
+ categoryPage_recyclerView.adapter = adapter
+ categoryPage_swipeRefresh.setOnRefreshListener {
+ loadBooks() //下拉刷新
+ }
+ setupNavigation()
+ loadBooks()
+ setupBottomNavigation()
+ returnToBookcity()
+ }
+
+ private fun setupNavigation() {
+ categoryPage_navView.setCheckedItem(R.id.science)
+ categoryPage_navView.setNavigationItemSelectedListener { menuItem ->
+ startActivity(Intent(this, when (menuItem.itemId) {
+ R.id.literature -> LiteratureActivity::class.java
+ R.id.management -> ManagementActivity::class.java
+ R.id.psychology -> PsychologyActivity::class.java
+ R.id.science -> ScienceActivity::class.java
+ R.id.philosophy -> PhilosophyActivity::class.java
+ else -> MainActivity::class.java
+ }))
+ categoryPage_drawerLayout.closeDrawers()
+ true
+ }
+ }
+
+ private fun loadBooks() {
+ val query = BmobQuery()
+ query.addWhereEqualTo("category_id", 4)
+ query.findObjects(object : FindListener() {
+ override fun done(list: List?, e: BmobException?) {
+ categoryPage_swipeRefresh.isRefreshing = false
+ if (e == null && list != null) {
+ updateBookList(list)
+ } else {
+ Log.e("ScienceActivity", "Error refreshing books: ${e?.message}", e)
+ Toast.makeText(this@ScienceActivity, "Failed to refresh books.", Toast.LENGTH_SHORT).show()
+ }
+ }
+ })
+ }
+
+ private fun updateBookList(list: List) {
+ bookList.clear()
+ bookList.addAll(list.map { Book(it.name, it.introduce, it.picture.url) })
+ adapter.notifyDataSetChanged()
+ }
+
+ private fun setupBottomNavigation() {
+ bookcity.setOnClickListener {
+ finish() // Simplify navigation logic
+ }
+ bookshelf.setOnClickListener {
+ startActivity(Intent(this, BookShelfActivity::class.java))
+ }
+ reading_comprehension.setOnClickListener {
+ startActivity(Intent(this, PerceptionActivity::class.java))
+ }
+ homepage.setOnClickListener {
+ startActivity(Intent(this, MyActivity::class.java))
+ }
+ }
+ private fun returnToBookcity(){
+ categoryPage_back.setOnClickListener{
+ startActivity(Intent(this, MainActivity::class.java))
+ }
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ if (item.itemId == android.R.id.home) {
+ categoryPage_drawerLayout.openDrawer(GravityCompat.START)
+ return true
+ }
+ return super.onOptionsItemSelected(item)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/WenXueActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/WenXueActivity.kt
deleted file mode 100644
index e9ab9ae..0000000
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/WenXueActivity.kt
+++ /dev/null
@@ -1,141 +0,0 @@
-package com.zjgsu.jianshu
-
-import android.content.Intent
-import android.os.Bundle
-import android.os.PersistableBundle
-import android.util.Log
-import android.view.MenuItem
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
-import androidx.core.view.GravityCompat
-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.Adapter.BookAdapter2
-import com.zjgsu.jianshu.Bmob.Book_bmob
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.activity_wenxue.*
-import kotlinx.android.synthetic.main.activity_xinli.*
-import kotlinx.android.synthetic.main.layout_bottom_navigation.*
-import kotlin.concurrent.thread
-
-class WenXueActivity:AppCompatActivity() {
- private var bookList = ArrayList()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_wenxue)
- supportActionBar?.let {
- it.setDisplayHomeAsUpEnabled(true)
- it.setHomeAsUpIndicator(R.drawable.menu)
- }
- Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
- inits()
- val layoutManager =
- StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)//第一个参数是列数
- wenxue_recyclerView.layoutManager = layoutManager
- var adapter = BookAdapter2(bookList)
- wenxue_recyclerView.adapter = adapter
- wenxue_swipeRefresh.setOnRefreshListener {
- refreshBooks(adapter)
- }
- wenxue_navView.setCheckedItem(R.id.wenxue)
- wenxue_navView.setNavigationItemSelectedListener {
- val intentwenxue = Intent(this, WenXueActivity::class.java)
- val intentguanli = Intent(this, guanliActivity::class.java)
- val intentxinli = Intent(this, xinliActivity::class.java)
- val intentkexue=Intent(this,kexueActivity::class.java)
- val intentzhexue=Intent(this,zhexueActivity::class.java)
- val intentgood=Intent(this,MainActivity::class.java)
- when (it.itemId) {
- R.id.wenxue -> startActivity(intentwenxue)
- R.id.guanli -> startActivity(intentguanli)
- R.id.xinli -> startActivity(intentxinli)
- R.id.kexue->startActivity(intentkexue)
- R.id.zhexue->startActivity(intentzhexue)
- R.id.goodbook->startActivity(intentgood)
- }
- wenxue_drawerLayout.closeDrawers()
- true
- }
-
- wenxue_back.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookcity.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookshelf.setOnClickListener{
- val intent = Intent(this, BookShelfActivity::class.java)
- startActivity(intent)
- finish()
- }
- reading_comprehension.setOnClickListener {
- val intent = Intent(this, PerceptionActivity::class.java)
- startActivity(intent)
- finish()
- }
- homepage.setOnClickListener {
- val intent = Intent(this, MyActivity::class.java)
- startActivity(intent)
- finish()
- }
- }
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- when (item.itemId) {
- android.R.id.home -> wenxue_drawerLayout.openDrawer(GravityCompat.START)
- }
- return true
- }
- private fun inits() {
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==1){
- bookList.add(Book(i.name, i.introduce,i.picture.url))
-// bookList2.add(Book(i.name, i.introduce))
- val adapter = BookAdapter2(bookList)
- wenxue_recyclerView.adapter = adapter
- }
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
- private fun refreshBooks(adapter: BookAdapter2) {
- thread {
- Thread.sleep(2000)
- runOnUiThread {
- initBooks()
- adapter.notifyDataSetChanged()
- wenxue_swipeRefresh.isRefreshing = false
- Toast.makeText(this, "刷新成功!", Toast.LENGTH_SHORT).show()
- }
- }
- }
- private fun initBooks() {
- bookList.clear()
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==1)
- bookList.add(Book(i.name, i.introduce,i.picture.url))
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/author_introductionActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/author_introductionActivity.kt
index e95c6fa..31f26bd 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/author_introductionActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/author_introductionActivity.kt
@@ -13,7 +13,7 @@ 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.Bmob.Book_inf_bmob
+import com.zjgsu.jianshu.Bmob.Book_info_bmob
import kotlinx.android.synthetic.main.activity_anthor_introduction.*
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.book_author_item.*
@@ -56,10 +56,10 @@ class author_introductionActivity : AppCompatActivity() {
}
}
private fun inits() {
- val bmobQuery = BmobQuery()
+ val bmobQuery = BmobQuery()
bmobQuery.addWhereEqualTo("author_name",book_authorname1.text.toString())
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ bmobQuery.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
if(flag==0){
@@ -80,8 +80,6 @@ class author_introductionActivity : AppCompatActivity() {
val `in`: InputStream = connection.getInputStream()
val bitmap: Bitmap =
BitmapFactory.decodeStream(`in`)
-// Log.d("myLog","fine")
- //yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
author_img.setImageBitmap(bitmap)
} catch (e: Exception) {
e.printStackTrace()
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/guanliActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/guanliActivity.kt
deleted file mode 100644
index 5285b5b..0000000
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/guanliActivity.kt
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.zjgsu.jianshu
-import android.content.Intent
-import android.os.Bundle
-import android.os.PersistableBundle
-import android.util.Log
-import android.view.MenuItem
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
-import androidx.core.view.GravityCompat
-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.Adapter.BookAdapter2
-import com.zjgsu.jianshu.Bmob.Book_bmob
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.activity_guanli.*
-import kotlinx.android.synthetic.main.activity_xinli.*
-import kotlinx.android.synthetic.main.layout_bottom_navigation.*
-import kotlin.concurrent.thread
-
-class guanliActivity:AppCompatActivity() {
- private var bookList = ArrayList()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_guanli)
- supportActionBar?.let {
- it.setDisplayHomeAsUpEnabled(true)
- it.setHomeAsUpIndicator(R.drawable.menu)
- }
- Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
- inits()
- val layoutManager =
- StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)//第一个参数是列数
- guanli_recyclerView.layoutManager = layoutManager
- var adapter = BookAdapter2(bookList)
- guanli_recyclerView.adapter = adapter
- guanli_swipeRefresh.setOnRefreshListener {
- refreshBooks(adapter)
- }
- guanli_navView.setCheckedItem(R.id.guanli)
- guanli_navView.setNavigationItemSelectedListener {
- val intentwenxue = Intent(this, WenXueActivity::class.java)
- val intentguanli = Intent(this, guanliActivity::class.java)
- val intentxinli = Intent(this, xinliActivity::class.java)
- val intentkexue=Intent(this,kexueActivity::class.java)
- val intentzhexue=Intent(this,zhexueActivity::class.java)
- val intentgood=Intent(this,MainActivity::class.java)
- when (it.itemId) {
- R.id.wenxue -> startActivity(intentwenxue)
- R.id.guanli -> startActivity(intentguanli)
- R.id.kexue->startActivity(intentkexue)
- R.id.zhexue->startActivity(intentzhexue)
- R.id.xinli->startActivity(intentxinli)
- R.id.goodbook->startActivity(intentgood)
- }
- guanli_drawerLayout.closeDrawers()
- true
- }
- guanli_back.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookshelf.setOnClickListener{
- val intent = Intent(this, BookShelfActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookcity.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- reading_comprehension.setOnClickListener {
- val intent = Intent(this, PerceptionActivity::class.java)
- startActivity(intent)
- finish()
- }
- homepage.setOnClickListener {
- val intent = Intent(this, MyActivity::class.java)
- startActivity(intent)
- finish()
- }
- }
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- when (item.itemId) {
- android.R.id.home -> guanli_drawerLayout.openDrawer(GravityCompat.START)
- }
- return true
- }
- private fun inits() {
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==2){
- bookList.add(Book(i.name, i.introduce,i.picture.url))
-// bookList2.add(Book(i.name, i.introduce))
- val adapter = BookAdapter2(bookList)
- guanli_recyclerView.adapter = adapter
- }
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
- private fun refreshBooks(adapter: BookAdapter2) {
- thread {
- Thread.sleep(2000)
- runOnUiThread {
- initBooks()
- adapter.notifyDataSetChanged()
- guanli_swipeRefresh.isRefreshing = false
- Toast.makeText(this, "刷新成功!", Toast.LENGTH_SHORT).show()
- }
- }
- }
- private fun initBooks() {
- bookList.clear()
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==2)
- bookList.add(Book(i.name, i.introduce,i.picture.url))
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/kexueActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/kexueActivity.kt
deleted file mode 100644
index 7e56d57..0000000
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/kexueActivity.kt
+++ /dev/null
@@ -1,141 +0,0 @@
-package com.zjgsu.jianshu
-
-import android.content.Intent
-import android.os.Bundle
-import android.os.PersistableBundle
-import android.util.Log
-import android.view.MenuItem
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
-import androidx.core.view.GravityCompat
-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.Adapter.BookAdapter2
-import com.zjgsu.jianshu.Bmob.Book_bmob
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.activity_kexue.*
-import kotlinx.android.synthetic.main.activity_xinli.*
-import kotlinx.android.synthetic.main.layout_bottom_navigation.*
-import kotlin.concurrent.thread
-
-class kexueActivity:AppCompatActivity() {
- private var bookList = ArrayList()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_kexue)
- supportActionBar?.let {
- it.setDisplayHomeAsUpEnabled(true)
- it.setHomeAsUpIndicator(R.drawable.menu)
- }
- Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
- inits()
- val layoutManager =
- StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)//第一个参数是列数
- kexue_recyclerView.layoutManager = layoutManager
- var adapter = BookAdapter2(bookList)
- kexue_recyclerView.adapter = adapter
- kexue_swipeRefresh.setOnRefreshListener {
- refreshBooks(adapter)
- }
- kexue_navView.setCheckedItem(R.id.kexue)
- kexue_navView.setNavigationItemSelectedListener {
- val intentwenxue = Intent(this, WenXueActivity::class.java)
- val intentguanli = Intent(this, guanliActivity::class.java)
- val intentxinli = Intent(this, xinliActivity::class.java)
- val intentkexue=Intent(this,kexueActivity::class.java)
- val intentzhexue=Intent(this,zhexueActivity::class.java)
- val intentgood=Intent(this,MainActivity::class.java)
- when (it.itemId) {
- R.id.wenxue -> startActivity(intentwenxue)
- R.id.guanli -> startActivity(intentguanli)
- R.id.xinli -> startActivity(intentxinli)
- R.id.kexue->startActivity(intentkexue)
- R.id.zhexue->startActivity(intentzhexue)
- R.id.goodbook->startActivity(intentgood)
- }
- kexue_drawerLayout.closeDrawers()
- true
- }
-
- kexue_back.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookcity.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookshelf.setOnClickListener{
- val intent = Intent(this, BookShelfActivity::class.java)
- startActivity(intent)
- finish()
- }
- reading_comprehension.setOnClickListener {
- val intent = Intent(this, PerceptionActivity::class.java)
- startActivity(intent)
- finish()
- }
- homepage.setOnClickListener {
- val intent = Intent(this, MyActivity::class.java)
- startActivity(intent)
- finish()
- }
- }
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- when (item.itemId) {
- android.R.id.home -> kexue_drawerLayout.openDrawer(GravityCompat.START)
- }
- return true
- }
- private fun inits() {
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==4){
- bookList.add(Book(i.name, i.introduce,i.picture.url))
-// bookList2.add(Book(i.name, i.introduce))
- val adapter = BookAdapter2(bookList)
- kexue_recyclerView.adapter = adapter
- }
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
- private fun refreshBooks(adapter: BookAdapter2) {
- thread {
- Thread.sleep(2000)
- runOnUiThread {
- initBooks()
- adapter.notifyDataSetChanged()
- kexue_swipeRefresh.isRefreshing = false
- Toast.makeText(this, "刷新成功!", Toast.LENGTH_SHORT).show()
- }
- }
- }
- private fun initBooks() {
- bookList.clear()
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==4)
- bookList.add(Book(i.name, i.introduce,i.picture.url))
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/sendPerceptionActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/sendPerceptionActivity.kt
index 2482fc3..fe5e332 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/sendPerceptionActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/sendPerceptionActivity.kt
@@ -14,7 +14,7 @@ import cn.bmob.v3.exception.BmobException
import cn.bmob.v3.listener.FindListener
import cn.bmob.v3.listener.SaveListener
import com.zjgsu.jianshu.*
-import com.zjgsu.jianshu.Bmob.Book_inf_bmob
+import com.zjgsu.jianshu.Bmob.Book_info_bmob
import com.zjgsu.jianshu.Bmob.Perception_bmob
import com.zjgsu.jianshu.Bmob.User_bmob
import kotlinx.android.synthetic.main.activity_sendperception.*
@@ -75,9 +75,9 @@ class sendPerceptionActivity:AppCompatActivity() {
}
}
private fun inits(){
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ val bmobQuery = BmobQuery()
+ bmobQuery.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
bookList.add(BookAuthor(i.name, i.author_name))
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/xinliActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/xinliActivity.kt
deleted file mode 100644
index 829a625..0000000
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/xinliActivity.kt
+++ /dev/null
@@ -1,138 +0,0 @@
-package com.zjgsu.jianshu
-import android.content.Intent
-import android.os.Bundle
-import android.os.PersistableBundle
-import android.util.Log
-import android.view.MenuItem
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
-import androidx.core.view.GravityCompat
-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.Adapter.BookAdapter2
-import com.zjgsu.jianshu.Bmob.Book_bmob
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.activity_xinli.*
-import kotlinx.android.synthetic.main.layout_bottom_navigation.*
-import kotlin.concurrent.thread
-
-class xinliActivity:AppCompatActivity() {
- private var bookList = ArrayList()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_xinli)
- supportActionBar?.let {
- it.setDisplayHomeAsUpEnabled(true)
- it.setHomeAsUpIndicator(R.drawable.menu)
- }
- Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
- inits()
- val layoutManager =
- StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)//第一个参数是列数
- xinli_recyclerView.layoutManager = layoutManager
- var adapter = BookAdapter2(bookList)
- xinli_recyclerView.adapter = adapter
- xinli_swipeRefresh.setOnRefreshListener {
- refreshBooks(adapter)
- }
- xinli_navView.setCheckedItem(R.id.xinli)
- xinli_navView.setNavigationItemSelectedListener {
- val intentwenxue = Intent(this, WenXueActivity::class.java)
- val intentguanli = Intent(this, guanliActivity::class.java)
- val intentxinli = Intent(this, xinliActivity::class.java)
- val intentkexue=Intent(this,kexueActivity::class.java)
- val intentzhexue=Intent(this,zhexueActivity::class.java)
- val intentgood=Intent(this,MainActivity::class.java)
- when (it.itemId) {
- R.id.wenxue -> startActivity(intentwenxue)
- R.id.guanli -> startActivity(intentguanli)
- R.id.kexue->startActivity(intentkexue)
- R.id.zhexue->startActivity(intentzhexue)
- R.id.xinli->startActivity(intentxinli)
- R.id.goodbook->startActivity(intentgood)
- }
- xinli_drawerLayout.closeDrawers()
- true
- }
- xinli_back.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookshelf.setOnClickListener{
- val intent = Intent(this, BookShelfActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookcity.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- reading_comprehension.setOnClickListener {
- val intent = Intent(this, PerceptionActivity::class.java)
- startActivity(intent)
- finish()
- }
- homepage.setOnClickListener {
- val intent = Intent(this, MyActivity::class.java)
- startActivity(intent)
- finish()
- }
- }
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- when (item.itemId) {
- android.R.id.home -> xinli_drawerLayout.openDrawer(GravityCompat.START)
- }
- return true
- }
- private fun inits() {
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==3){
- bookList.add(Book(i.name, i.introduce,i.picture.url))
-// bookList2.add(Book(i.name, i.introduce))
- val adapter = BookAdapter2(bookList)
- xinli_recyclerView.adapter = adapter
- }
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
- private fun refreshBooks(adapter: BookAdapter2) {
- thread {
- Thread.sleep(2000)
- runOnUiThread {
- initBooks()
- adapter.notifyDataSetChanged()
- xinli_swipeRefresh.isRefreshing = false
- Toast.makeText(this, "刷新成功!", Toast.LENGTH_SHORT).show()
- }
- }
- }
- private fun initBooks() {
- bookList.clear()
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==3)
- bookList.add(Book(i.name, i.introduce,i.picture.url))
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/zhexueActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/zhexueActivity.kt
deleted file mode 100644
index 243156c..0000000
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/zhexueActivity.kt
+++ /dev/null
@@ -1,141 +0,0 @@
-package com.zjgsu.jianshu
-
-import android.content.Intent
-import android.os.Bundle
-import android.os.PersistableBundle
-import android.util.Log
-import android.view.MenuItem
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
-import androidx.core.view.GravityCompat
-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.Adapter.BookAdapter2
-import com.zjgsu.jianshu.Bmob.Book_bmob
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.activity_zhexue.*
-import kotlinx.android.synthetic.main.activity_xinli.*
-import kotlinx.android.synthetic.main.layout_bottom_navigation.*
-import kotlin.concurrent.thread
-
-class zhexueActivity:AppCompatActivity() {
- private var bookList = ArrayList()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_zhexue)
- supportActionBar?.let {
- it.setDisplayHomeAsUpEnabled(true)
- it.setHomeAsUpIndicator(R.drawable.menu)
- }
- Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
- inits()
- val layoutManager =
- StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)//第一个参数是列数
- zhexue_recyclerView.layoutManager = layoutManager
- var adapter = BookAdapter2(bookList)
- zhexue_recyclerView.adapter = adapter
- zhexue_swipeRefresh.setOnRefreshListener {
- refreshBooks(adapter)
- }
- zhexue_navView.setCheckedItem(R.id.zhexue)
- zhexue_navView.setNavigationItemSelectedListener {
- val intentwenxue = Intent(this, WenXueActivity::class.java)
- val intentguanli = Intent(this, guanliActivity::class.java)
- val intentxinli = Intent(this, xinliActivity::class.java)
- val intentzhexue=Intent(this,zhexueActivity::class.java)
- val intentkexue=Intent(this,kexueActivity::class.java)
- val intentgood=Intent(this,MainActivity::class.java)
- when (it.itemId) {
- R.id.wenxue -> startActivity(intentwenxue)
- R.id.guanli -> startActivity(intentguanli)
- R.id.xinli -> startActivity(intentxinli)
- R.id.zhexue->startActivity(intentzhexue)
- R.id.kexue->startActivity(intentkexue)
- R.id.goodbook->startActivity(intentgood)
- }
- zhexue_drawerLayout.closeDrawers()
- true
- }
-
- zhexue_back.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookcity.setOnClickListener{
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- bookshelf.setOnClickListener{
- val intent = Intent(this, BookShelfActivity::class.java)
- startActivity(intent)
- finish()
- }
- reading_comprehension.setOnClickListener {
- val intent = Intent(this, PerceptionActivity::class.java)
- startActivity(intent)
- finish()
- }
- homepage.setOnClickListener {
- val intent = Intent(this, MyActivity::class.java)
- startActivity(intent)
- finish()
- }
- }
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- when (item.itemId) {
- android.R.id.home -> zhexue_drawerLayout.openDrawer(GravityCompat.START)
- }
- return true
- }
- private fun inits() {
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==5){
- bookList.add(Book(i.name, i.introduce,i.picture.url))
-// bookList2.add(Book(i.name, i.introduce))
- val adapter = BookAdapter2(bookList)
- zhexue_recyclerView.adapter = adapter
- }
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
- private fun refreshBooks(adapter: BookAdapter2) {
- thread {
- Thread.sleep(2000)
- runOnUiThread {
- initBooks()
- adapter.notifyDataSetChanged()
- zhexue_swipeRefresh.isRefreshing = false
- Toast.makeText(this, "刷新成功!", Toast.LENGTH_SHORT).show()
- }
- }
- }
- private fun initBooks() {
- bookList.clear()
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if(i.category_id==5)
- bookList.add(Book(i.name, i.introduce,i.picture.url))
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Adapter/BillboardAdapter.kt b/app/src/main/java/com/zjgsu/jianshu/Adapter/BillboardAdapter.kt
new file mode 100644
index 0000000..dee565b
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/BillboardAdapter.kt
@@ -0,0 +1,84 @@
+package com.zjgsu.jianshu.Adapter
+
+import android.annotation.SuppressLint
+import android.content.Intent
+import android.graphics.drawable.Drawable
+import android.transition.Transition
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.core.content.ContextCompat
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.recyclerview.widget.RecyclerView
+import androidx.viewpager2.adapter.FragmentStateAdapter
+import com.bumptech.glide.Glide
+import com.bumptech.glide.request.target.SimpleTarget
+import com.zjgsu.jianshu.*
+
+class BillboardAdapter(var listOfbookRankList: List>) : RecyclerView.Adapter() {
+ inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ val bookRank_title:TextView=view.findViewById(R.id.bookRank_title)
+ val bookRank_name1: TextView = view.findViewById(R.id.bookRank_name1)
+ val bookRank_pic1: ImageView = view.findViewById(R.id.bookRank_pic1)
+ val bookRank_decr1: TextView = view.findViewById(R.id.bookRank_desc1)
+ val bookRank_name2: TextView= view.findViewById(R.id.bookRank_name2)
+ val bookRank_pic2: ImageView = view.findViewById(R.id.bookRank_pic2)
+ val bookRank_decr2: TextView = view.findViewById(R.id.bookRank_desc2)
+ val bookRank_name3: TextView = view.findViewById(R.id.bookRank_name3)
+ val bookRank_pic3: ImageView = view.findViewById(R.id.bookRank_pic3)
+ val bookRank_decr3: TextView = view.findViewById(R.id.bookRank_desc3)
+ val bookRank_backimg:LinearLayout=view.findViewById(R.id.bookRank_backimg)
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+ val view = LayoutInflater.from(parent.context).inflate(R.layout.book_rank_item, parent, false)
+ return ViewHolder(view)
+ }
+
+
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+ val bookRankList = listOfbookRankList[position]
+ Log.d("BillboardAdapter", "Size of bookRankList at position $position")
+ if(position==0) {
+ holder.bookRank_title.text="热门图书榜"
+ holder.bookRank_decr1.text = "在读人数:"+bookRankList[0].courtOfReaders.toString()
+ holder.bookRank_decr2.text = "在读人数:"+bookRankList[1].courtOfReaders.toString()
+ holder.bookRank_decr3.text = "在读人数:"+bookRankList[2].courtOfReaders.toString()
+ holder.bookRank_backimg.setOnClickListener {
+ val intent = Intent(holder.itemView.context, HotBookActivity::class.java)
+ ContextCompat.startActivity(holder.itemView.context, intent, null)
+ }
+ }
+ else{
+ holder.bookRank_title.text="高分图书榜"
+ holder.bookRank_decr1.text = "简书推荐值:"+bookRankList[0].score
+ holder.bookRank_decr2.text = "简书推荐值:"+bookRankList[1].score
+ holder.bookRank_decr3.text = "简书推荐值:"+bookRankList[2].score
+
+ }
+ holder.bookRank_name1.text = bookRankList[0].name
+ Glide.with(holder.itemView.context)
+ .load(bookRankList[0].picUrl) // 确保你的Book对象有正确的图片URL
+ .placeholder(R.drawable.pre_load) // 可以设置一个占位图
+ .error(R.drawable.fail_load) // 设置加载失败的图
+ .into(holder.bookRank_pic1)
+ holder.bookRank_name2.text = bookRankList[1].name
+ Glide.with(holder.itemView.context)
+ .load(bookRankList[1].picUrl) // 确保你的Book对象有正确的图片URL
+ .placeholder(R.drawable.pre_load) // 可以设置一个占位图
+ .error(R.drawable.fail_load) // 设置加载失败的图
+ .into(holder.bookRank_pic2)
+ holder.bookRank_name3.text = bookRankList[2].name
+ Glide.with(holder.itemView.context)
+ .load(bookRankList[2].picUrl) // 确保你的Book对象有正确的图片URL
+ .placeholder(R.drawable.pre_load) // 可以设置一个占位图
+ .error(R.drawable.fail_load) // 设置加载失败的图
+ .into(holder.bookRank_pic3)
+ }
+ override fun getItemCount() = listOfbookRankList.size
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter.kt b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter.kt
index 68f0932..688660a 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter.kt
@@ -3,6 +3,7 @@ package com.zjgsu.jianshu
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
+import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -14,6 +15,7 @@ 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
import com.zjgsu.jianshu.Bmob.Book_bmob
import java.io.InputStream
import java.net.HttpURLConnection
@@ -49,36 +51,13 @@ inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
else if(position==2){
holder.rankimg.setImageResource(R.drawable.copper)
}
- val query = BmobQuery()
- query.addWhereEqualTo("name", book.name)
- query.findObjects(object : FindListener() {
- override fun done(p0: MutableList?, p1: BmobException?) {
- if (p1 == null) {
- if (p0 != null && p0.size > 0) {
- for (p in p0) {
- object : Thread() {
- override fun run() {
- try {
- val url = URL(p!!.picture.url)
- val connection: HttpURLConnection =
- url.openConnection() as HttpURLConnection
- connection.setRequestMethod("GET")
- connection.setConnectTimeout(5000)
- val `in`: InputStream = connection.getInputStream()
- val bitmap: Bitmap =
- BitmapFactory.decodeStream(`in`)
- holder.bookList_Image.setImageBitmap(bitmap)
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
- }.start()
- }
- }
- }
- }
- })
-// Glide.with(context).load(book.imageId).into(holder.bookList_Image)
+ else holder.rankimg.setImageDrawable(null)
+
+ Glide.with(holder.itemView.context)
+ .load(book.picUrl) // 确保你的Book对象有正确的图片URL
+ .placeholder(R.drawable.pre_load) // 可以设置一个占位图
+ .error(R.drawable.fail_load) // 设置加载失败的图
+ .into(holder.bookList_Image)
holder.outerLinearLayout.setOnClickListener{
val intent = Intent(holder.itemView.context, Book_informationActivity::class.java)
intent.putExtra("Book_name", book.name)
diff --git a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter2.kt b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter2.kt
index de01b7c..efa7021 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter2.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter2.kt
@@ -1,8 +1,5 @@
package com.zjgsu.jianshu.Adapter
-import com.zjgsu.jianshu.Book
-import com.zjgsu.jianshu.Book_informationActivity
-import com.zjgsu.jianshu.R
import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
@@ -12,6 +9,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
+import android.widget.LinearLayout
import android.widget.TextView
import androidx.appcompat.widget.ActivityChooserView
import androidx.core.content.ContextCompat
@@ -21,6 +19,7 @@ import cn.bmob.v3.datatype.BmobFile
import cn.bmob.v3.exception.BmobException
import cn.bmob.v3.listener.FindListener
import com.bumptech.glide.Glide
+import com.zjgsu.jianshu.*
import com.zjgsu.jianshu.Bmob.Book_bmob
import java.io.InputStream
import java.net.HttpURLConnection
@@ -32,58 +31,23 @@ class BookAdapter2(val bookList: List) : RecyclerView.Adapter()
- query.addWhereEqualTo("name", book.name)
- query.findObjects(object : FindListener() {
- override fun done(p0: MutableList?, p1: BmobException?) {
- if (p1 == null) {
- if (p0 != null && p0.size > 0) {
- for (p in p0) {
- object : Thread() {
- override fun run() {
- try {
- val url = URL(p!!.picture.url)
- val connection: HttpURLConnection =
- url.openConnection() as HttpURLConnection
- connection.setRequestMethod("GET")
- connection.setConnectTimeout(5000)
- val `in`: InputStream = connection.getInputStream()
- val bitmap: Bitmap =
- BitmapFactory.decodeStream(`in`)
- holder.bookList_Image.setImageBitmap(bitmap)
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
- }.start()
- }
- }
- }
- }
- })
-// Glide.with(context).load(book.imageId).into(holder.bookList_Image)
-
- holder.bookList_Image.setOnClickListener {
- val intent = Intent(holder.itemView.context, Book_informationActivity::class.java)
- intent.putExtra("Book_name", book.name)
- ContextCompat.startActivity(holder.itemView.context, intent, null)
- }
- holder.bookList_Introduce.setOnClickListener {
- val intent = Intent(holder.itemView.context, Book_informationActivity::class.java)
- intent.putExtra("Book_name", book.name)
- ContextCompat.startActivity(holder.itemView.context, intent, null)
- }
- holder.bookList_Name.setOnClickListener {
+ Glide.with(holder.itemView.context)
+ .load(book.picUrl) // 确保你的Book对象有正确的图片URL
+ .placeholder(R.drawable.pre_load) // 可以设置一个占位图
+ .error(R.drawable.fail_load) // 设置加载失败的图
+ .into(holder.bookList_Image)
+ holder.outerLinearLayout.setOnClickListener{
val intent = Intent(holder.itemView.context, Book_informationActivity::class.java)
intent.putExtra("Book_name", book.name)
ContextCompat.startActivity(holder.itemView.context, intent, null)
diff --git a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookRankAdapter.kt b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookRankAdapter.kt
new file mode 100644
index 0000000..11a1cca
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookRankAdapter.kt
@@ -0,0 +1,64 @@
+package com.zjgsu.jianshu.Adapter
+
+import android.content.Intent
+import android.media.Image
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.core.content.ContextCompat
+import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
+import com.zjgsu.jianshu.*
+
+class BookRankAdapter(var bookList: List): RecyclerView.Adapter() {
+ inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ val bookrank_pic:ImageView=view.findViewById(R.id.bookrank_pic)
+ val bookrank_intro:TextView=view.findViewById(R.id.bookrank_intro)
+ val bookrank_name:TextView=view.findViewById(R.id.bookrank_name)
+ val bookrank_desc:TextView=view.findViewById(R.id.bookrank_desc)
+ val innerLinearLayout: LinearLayout = view.findViewById(R.id.bookrank_innerLinearLayout)
+ val outerLinearLayout:LinearLayout=view.findViewById(R.id.bookrank_outerLinearLayout)
+ val bookrank_author:TextView=view.findViewById(R.id.bookrank_author)
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+ val view = LayoutInflater.from(parent.context).inflate(R.layout.book_rank2_item, parent, false)
+ return ViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+ val book = bookList[position]
+ holder.bookrank_name.text = book.name
+ holder.bookrank_intro.text = book.intro
+ val backgrounds = arrayOf(
+ R.drawable.color_lightpurple, R.drawable.color_lightblue,
+ R.drawable.color_lightgreen, R.drawable.color_flesh)
+ holder.innerLinearLayout.setBackgroundResource(backgrounds[position % backgrounds.size])
+ holder.bookrank_desc.text="在读人数:"+book.courtOfReaders
+ holder.bookrank_author.text=book.author
+// if (position == 0) { // 假设第一名使用金牌图片
+// holder.rankimg.setImageResource(R.drawable.gold)
+// } else if (position == 1) { // 第二名使用其他图片,以此类推
+// holder.rankimg.setImageResource(R.drawable.silver)
+// }
+// else if(position==2){
+// holder.rankimg.setImageResource(R.drawable.copper)
+// }
+// else holder.rankimg.setImageDrawable(null)
+
+ Glide.with(holder.itemView.context)
+ .load(book.picUrl) // 确保你的Book对象有正确的图片URL
+ .placeholder(R.drawable.pre_load) // 可以设置一个占位图
+ .error(R.drawable.fail_load) // 设置加载失败的图
+ .into(holder.bookrank_pic)
+ holder.outerLinearLayout.setOnClickListener{
+ val intent = Intent(holder.itemView.context, Book_informationActivity::class.java)
+ intent.putExtra("Book_name", book.name)
+ ContextCompat.startActivity(holder.itemView.context, intent, null)
+ }
+ }
+ override fun getItemCount() = bookList.size
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Adapter/PerceptionAdapter.kt b/app/src/main/java/com/zjgsu/jianshu/Adapter/PerceptionAdapter.kt
index 4ae8b00..afdca73 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Adapter/PerceptionAdapter.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/PerceptionAdapter.kt
@@ -15,7 +15,7 @@ import cn.bmob.v3.BmobQuery
import cn.bmob.v3.exception.BmobException
import cn.bmob.v3.listener.FindListener
import com.zjgsu.jianshu.Activity.Perception_informationActivity
-import com.zjgsu.jianshu.Bmob.Book_inf_bmob
+import com.zjgsu.jianshu.Bmob.Book_info_bmob
import com.zjgsu.jianshu.Bmob.Perception_bmob
import com.zjgsu.jianshu.Bmob.User_bmob
import java.io.InputStream
@@ -110,9 +110,9 @@ class PerceptionAdapter(val perceptionList: List) : RecyclerView.Ada
Log.d("myLog", p.b_name)
bookName=p.b_name
holder.perceptionList_bookName.text=bookName
- val queryBook = BmobQuery()
- queryBook.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
+ val queryBook = BmobQuery()
+ queryBook.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list) {
if (p.b_name.equals(i.name)) {
diff --git a/app/src/main/java/com/zjgsu/jianshu/Bmob/Book_bmob.kt b/app/src/main/java/com/zjgsu/jianshu/Bmob/Book_bmob.kt
index e62d9ec..9dcf28c 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Bmob/Book_bmob.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Bmob/Book_bmob.kt
@@ -8,9 +8,5 @@ class Book_bmob: BmobObject(){
var name:String=""
var picture: BmobFile=BmobFile()
var introduce:String=""
- var tuijian:Int=0
- var yiban:Int=0
- var buxing:Int=0
var category_id:Int=0
-
}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Bmob/Book_inf_bmob.kt b/app/src/main/java/com/zjgsu/jianshu/Bmob/Book_inf_bmob.kt
index c34dd8b..178a397 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Bmob/Book_inf_bmob.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Bmob/Book_inf_bmob.kt
@@ -3,7 +3,7 @@ package com.zjgsu.jianshu.Bmob
import cn.bmob.v3.BmobObject
import cn.bmob.v3.datatype.BmobFile
-class Book_inf_bmob:BmobObject(){
+class Book_info_bmob:BmobObject(){
var name: String=""
var picture: BmobFile= BmobFile()
var introduce: String=""
@@ -14,6 +14,7 @@ class Book_inf_bmob:BmobObject(){
var yiban:Int=0
var tuijian:Int=0
var buxing:Int=0
+ var countOfReaders:Int=0
fun settuijian(tuijian1: Int){
this.tuijian=tuijian1
}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Book_rank.kt b/app/src/main/java/com/zjgsu/jianshu/Book_rank.kt
new file mode 100644
index 0000000..be9d2fb
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Book_rank.kt
@@ -0,0 +1,9 @@
+package com.zjgsu.jianshu
+
+class Book_rank(var name: String,
+ var picUrl: String,
+ var score:String,
+ var courtOfReaders:Int,
+ var author:String,
+ var intro:String
+)
\ No newline at end of file
diff --git a/app/src/main/res/drawable/addbook.png b/app/src/main/res/drawable/addbook.png
new file mode 100644
index 0000000..bab35ad
Binary files /dev/null and b/app/src/main/res/drawable/addbook.png differ
diff --git a/app/src/main/res/drawable/alreadyin.png b/app/src/main/res/drawable/alreadyin.png
new file mode 100644
index 0000000..62976db
Binary files /dev/null and b/app/src/main/res/drawable/alreadyin.png differ
diff --git a/app/src/main/res/drawable/fail_load.png b/app/src/main/res/drawable/fail_load.png
new file mode 100644
index 0000000..b7c3153
Binary files /dev/null and b/app/src/main/res/drawable/fail_load.png differ
diff --git a/app/src/main/res/drawable/loading.png b/app/src/main/res/drawable/loading.png
new file mode 100644
index 0000000..3dcd484
Binary files /dev/null and b/app/src/main/res/drawable/loading.png differ
diff --git a/app/src/main/res/drawable/pre_load.png b/app/src/main/res/drawable/pre_load.png
new file mode 100644
index 0000000..b174bc8
Binary files /dev/null and b/app/src/main/res/drawable/pre_load.png differ
diff --git a/app/src/main/res/layout/activity_bookrank.xml b/app/src/main/res/layout/activity_bookrank.xml
new file mode 100644
index 0000000..60f093e
--- /dev/null
+++ b/app/src/main/res/layout/activity_bookrank.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_bookshelf.xml b/app/src/main/res/layout/activity_bookshelf.xml
index fce1973..7d3aef0 100644
--- a/app/src/main/res/layout/activity_bookshelf.xml
+++ b/app/src/main/res/layout/activity_bookshelf.xml
@@ -1,189 +1,42 @@
-
-
-
+
+
-
+ android:layout_height="match_parent" />
+
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/activity_categorypage.xml b/app/src/main/res/layout/activity_categorypage.xml
new file mode 100644
index 0000000..7154880
--- /dev/null
+++ b/app/src/main/res/layout/activity_categorypage.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_guanli.xml b/app/src/main/res/layout/activity_guanli.xml
deleted file mode 100644
index 51daafc..0000000
--- a/app/src/main/res/layout/activity_guanli.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_kexue.xml b/app/src/main/res/layout/activity_kexue.xml
deleted file mode 100644
index 49bd777..0000000
--- a/app/src/main/res/layout/activity_kexue.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 52e9bab..2801a13 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,70 +1,104 @@
-
-
-
-
-
-
-
-
-
-
+
+ android:layout_height="match_parent">
-
-
-
-
+
+
-
+
-
+
+
+
-
-
+ android:layout_height="match_parent"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_perception.xml b/app/src/main/res/layout/activity_perception.xml
index c52de0f..ccbfbf1 100644
--- a/app/src/main/res/layout/activity_perception.xml
+++ b/app/src/main/res/layout/activity_perception.xml
@@ -8,34 +8,38 @@
android:background="@drawable/black"
tools:context=".PerceptionActivity">
-
-
+
+
+ android:layout_height="match_parent" />
-
-
-
-
+
+
+
+ app:layout_constraintBottom_toTopOf="@id/layout_bottom_navigation"
+ app:layout_constraintEnd_toEndOf="parent" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/activity_wenxue.xml b/app/src/main/res/layout/activity_wenxue.xml
deleted file mode 100644
index caf0722..0000000
--- a/app/src/main/res/layout/activity_wenxue.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_xinli.xml b/app/src/main/res/layout/activity_xinli.xml
deleted file mode 100644
index d300ee8..0000000
--- a/app/src/main/res/layout/activity_xinli.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_zhexue.xml b/app/src/main/res/layout/activity_zhexue.xml
deleted file mode 100644
index baea3e9..0000000
--- a/app/src/main/res/layout/activity_zhexue.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/book_item.xml b/app/src/main/res/layout/book_item.xml
index 467f4b2..43c1b42 100644
--- a/app/src/main/res/layout/book_item.xml
+++ b/app/src/main/res/layout/book_item.xml
@@ -17,8 +17,8 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
- android:orientation="vertical"
- android:paddingLeft="10dp">
+ android:layout_marginLeft="5dp"
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/book_rank_item.xml b/app/src/main/res/layout/book_rank_item.xml
new file mode 100644
index 0000000..06aa67d
--- /dev/null
+++ b/app/src/main/res/layout/book_rank_item.xml
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_book.xml b/app/src/main/res/layout/item_book.xml
new file mode 100644
index 0000000..f8182ea
--- /dev/null
+++ b/app/src/main/res/layout/item_book.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/layout_bottom_navigation.xml b/app/src/main/res/layout/layout_bottom_navigation.xml
index 32ba99f..79b0223 100644
--- a/app/src/main/res/layout/layout_bottom_navigation.xml
+++ b/app/src/main/res/layout/layout_bottom_navigation.xml
@@ -10,11 +10,12 @@
+ android:src="@drawable/bookshelf1" />