diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5e60911..7214c31 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -28,8 +28,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.Jianshu"
android:usesCleartextTraffic="true">
+
-
+
@@ -49,8 +50,8 @@
-
-
+
@@ -68,7 +69,7 @@
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/BookInformationActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/BookInformationActivity.kt
new file mode 100644
index 0000000..37ddf9b
--- /dev/null
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/BookInformationActivity.kt
@@ -0,0 +1,221 @@
+package com.zjgsu.jianshu
+
+import android.content.Context
+import android.content.Intent
+import android.util.Log
+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.UpdateListener
+import android.os.Bundle
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.StaggeredGridLayoutManager
+import cn.bmob.v3.listener.SaveListener
+import com.bumptech.glide.Glide
+import com.zjgsu.jianshu.Adapter.GoodsuibiAdapter
+import com.zjgsu.jianshu.Bmob.BookShelf
+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.bookinfo_title.*
+
+
+class BookInformationActivity : AppCompatActivity() {
+ private val perceptionList = ArrayList()
+ private var isCommented = false
+ private lateinit var bookName: String
+ private lateinit var authorName: String
+ private lateinit var userId:String
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_book_info)
+ Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
+ bookName = intent.getStringExtra("Book_name") ?: ""
+ userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString()
+ loadPerceptions()
+ setupRecyclerView()
+ loadBookInfo()
+ judgeInBookshelf()
+ setClickListeners()
+ }
+
+ private fun loadPerceptions() {
+ val queryPerception = BmobQuery()
+ queryPerception.addWhereEqualTo("b_name", bookName)
+ queryPerception.findObjects(object : FindListener() {
+ override fun done(list: List, e: BmobException?) {
+ if (e == null) {
+ list.forEach { perceptionList.add(Perception(it.objectId)) }
+ bookinfo_recyclerView.adapter?.notifyDataSetChanged()
+ } else {
+ Log.e("BookInfo", "Error loading perceptions: ${e.message}")
+ }
+ }
+ })
+ }
+
+ private fun setupRecyclerView() {
+ val layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL)
+ bookinfo_recyclerView.layoutManager = layoutManager
+ bookinfo_recyclerView.adapter = GoodsuibiAdapter(perceptionList)
+ }
+
+ private fun loadBookInfo() {
+ val queryBook = BmobQuery()
+ queryBook.addWhereEqualTo("name", bookName)
+ queryBook.findObjects(object : FindListener() {
+ override fun done(books: MutableList?, e: BmobException?) {
+ if (e == null && books != null && books.isNotEmpty()) {
+ val book = books[0]
+ loadBookCover(book.picture.url)
+ if (book.buxing + book.tuijian + book.buxing != 0) {
+ var tuijian_res: Double = 0.0
+ tuijian_res = (book.tuijian) * 100.0 / (book.buxing + book.tuijian + book.yiban)
+ progressBar_henhao.progress =
+ book.tuijian * 100 / (book.buxing + book.tuijian + book.yiban)
+ progressBar_yiban.progress =
+ book.yiban * 100 / (book.buxing + book.tuijian + book.yiban)
+ progressBar_buxing.progress =
+ book.buxing * 100 / (book.buxing + book.tuijian + book.yiban)
+ val str: String = String.format("%.2f", tuijian_res)
+ textView10.text = "简书推荐值 " + str + "%"
+ }
+ updateBookRankings(book)
+ Book_name_View.text = book.name
+ book_authorname.text = book.author_name
+ authorName = book.author_name
+ } else {
+ Log.e("BookInfo", "Error loading book info: ${e?.message}")
+ }
+ }
+ })
+ }
+
+ private fun judgeInBookshelf() {
+ val queryBookshelf = BmobQuery()
+ queryBookshelf.addWhereEqualTo("userid", userId)
+ queryBookshelf.addWhereEqualTo("b_name", bookName)
+ queryBookshelf.findObjects(object : FindListener() {
+ override fun done(bookshelfItems: MutableList?, e: BmobException?) {
+ if (e == null && bookshelfItems != null && bookshelfItems.isNotEmpty()) {
+ bookinfo_addBook.setImageResource(R.drawable.bookshelf2)
+ }
+ }
+ })
+ }
+
+ private fun setClickListeners() {
+ book_authorname.setOnClickListener {
+ val intent = Intent(this, author_introductionActivity::class.java)
+ intent.putExtra("author_name", authorName)
+ startActivity(intent)
+ }
+
+ bookinfo_return.setOnClickListener {
+ val intent = Intent(this, MainActivity::class.java)
+ startActivity(intent)
+ finish()
+ }
+
+ bookinfo_addBook.setOnClickListener {
+ addBookToBookshelf()
+ }
+
+ book_imageview.setOnClickListener {
+ val intent = Intent(this, BookIntroActivity::class.java)
+ intent.putExtra("Book_name", bookName)
+ startActivity(intent)
+ }
+
+ setCommentClickListeners()
+ }
+
+ private fun addBookToBookshelf() {
+ val queryBookshelf = BmobQuery()
+ queryBookshelf.addWhereEqualTo("userid", userId)
+ queryBookshelf.addWhereEqualTo("b_name", bookName)
+ queryBookshelf.findObjects(object : FindListener() {
+ override fun done(bookshelfItems: MutableList?, e: BmobException?) {
+ if (e == null && (bookshelfItems == null || bookshelfItems.isEmpty())) {
+ val bookshelfRecord = BookShelf()
+ bookshelfRecord.setb_name(bookName)
+ bookshelfRecord.setuserid(userId)
+ bookshelfRecord.save(object : SaveListener() {
+ override fun done(objectId: String?, saveException: BmobException?) {
+ if (saveException == null) {
+ bookinfo_addBook.setImageResource(R.drawable.bookshelf2)
+ Toast.makeText(
+ this@BookInformationActivity,
+ "添加成功",
+ Toast.LENGTH_SHORT
+ ).show()
+ } else {
+ Log.e(
+ "BookInfo",
+ "Error adding book to bookshelf: ${saveException.message}"
+ )
+ }
+ }
+ })
+ } else {
+ Toast.makeText(this@BookInformationActivity, "书本已在您的书架中!", Toast.LENGTH_SHORT)
+ .show()
+ }
+ }
+ })
+ }
+
+ private fun setCommentClickListeners() {
+ b_henhao.setOnClickListener { updateBookComment(true) }
+ b_yiban.setOnClickListener { updateBookComment(false) }
+ b_buxing.setOnClickListener { updateBookComment(false) }
+ }
+
+ private fun updateBookComment(isRecommended: Boolean) {
+ if (!isCommented) {
+ isCommented = true
+ val queryBook = BmobQuery()
+ queryBook.addWhereEqualTo("name", bookName)
+ queryBook.findObjects(object : FindListener() {
+ override fun done(books: List, e: BmobException?) {
+ if (e == null) {
+ for (book in books) {
+ updateBookRankings(book, isRecommended)
+ }
+ Toast.makeText(this@BookInformationActivity, "评价成功!", Toast.LENGTH_LONG)
+ .show()
+ } else {
+ Log.e("BookInfo", "Error updating book comment: ${e.message}")
+ }
+ }
+ })
+ } else {
+ Toast.makeText(this, "仅能评价一次!", Toast.LENGTH_SHORT).show()
+ }
+ }
+
+ private fun updateBookRankings(book: Book_info_bmob, isRecommended: Boolean = false) {
+ if (isRecommended) {
+ book.settuijian(book.tuijian + 1)
+ } else {
+ book.setyiban(book.yiban + 1)
+ book.setbuxing(book.buxing + 1)
+ }
+ book.update(book.objectId, object : UpdateListener() {
+ override fun done(e: BmobException?) {
+ if (e != null) {
+ Log.e("BookInfo", "Error updating book rankings: ${e.message}")
+ }
+ }
+ })
+ }
+ private fun loadBookCover(coverUrl: String) {
+ Glide.with(this) // 传入 Context
+ .load(coverUrl) // 加载图片的 URL
+ .placeholder(R.drawable.pre_load) // 设置占位图
+ .error(R.drawable.fail_load) // 设置加载失败时显示的图片
+ .into(book_imageview) // 将图片加载到指定的 ImageView 中
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/BookIntro.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/BookIntroActivity.kt
similarity index 89%
rename from app/src/main/java/com/zjgsu/jianshu/Activity/BookIntro.kt
rename to app/src/main/java/com/zjgsu/jianshu/Activity/BookIntroActivity.kt
index a9a644c..126c92e 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/BookIntro.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/BookIntroActivity.kt
@@ -1,5 +1,4 @@
-package com.zjgsu.jianshu.Activity
-
+package com.zjgsu.jianshu
import android.content.Intent
import android.os.Bundle
import android.util.Log
@@ -9,14 +8,13 @@ import cn.bmob.v3.BmobQuery
import cn.bmob.v3.exception.BmobException
import cn.bmob.v3.listener.FindListener
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.*
import kotlinx.android.synthetic.main.activity_bookintro.*
import kotlinx.android.synthetic.main.expandable3.*
import kotlinx.android.synthetic.main.expandable4.*
-class BookIntro:AppCompatActivity() {
+class BookIntroActivity:AppCompatActivity() {
private lateinit var Bookname: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -27,7 +25,7 @@ class BookIntro:AppCompatActivity() {
Log.d("zy123","yes")
inits()
intro_titleback.setOnClickListener {
- val intent = Intent(this, Book_informationActivity::class.java)
+ val intent = Intent(this, BookInformationActivity::class.java)
intent.putExtra("Book_name", Bookname)
startActivity(intent)
finish()
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 036bbb5..b1c0228 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/BookShelfActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/BookShelfActivity.kt
@@ -1,5 +1,6 @@
package com.zjgsu.jianshu
+import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
@@ -38,10 +39,12 @@ class BookShelfActivity : AppCompatActivity() {
val Booklist = ArrayList()
val Booklist2 = ArrayList()
lateinit var adapter:BookshelfAdapter
+ lateinit var userId:String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_bookshelf)
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
+ userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString()
inits()
val layoutManager=GridLayoutManager(this,3)
recyclerView2.layoutManager=layoutManager
@@ -90,7 +93,7 @@ class BookShelfActivity : AppCompatActivity() {
}
private fun inits() {
val bmobQuery = BmobQuery()
- bmobQuery.addWhereEqualTo("userid", UserId)
+ bmobQuery.addWhereEqualTo("userid", userId)
bmobQuery.findObjects(object : FindListener() {
override fun done(list: List, e: BmobException?) {
if (e == null) {
@@ -121,7 +124,7 @@ class BookShelfActivity : AppCompatActivity() {
private fun initbookshelf(){
Booklist.clear()
val bmobQuery = BmobQuery()
- bmobQuery.addWhereEqualTo("userid", UserId)
+ bmobQuery.addWhereEqualTo("userid", userId)
bmobQuery.findObjects(object : FindListener() {
override fun done(list: List, e: BmobException?) {
if (e == null) {
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
deleted file mode 100644
index 32ebc6d..0000000
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/Book_informationActivity.kt
+++ /dev/null
@@ -1,322 +0,0 @@
-package com.zjgsu.jianshu
-
-import android.content.Intent
-import android.graphics.Bitmap
-import android.graphics.BitmapFactory
-
-import android.util.Log
-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.UpdateListener
-import java.io.InputStream
-import java.net.HttpURLConnection
-import java.net.URL
-
-import android.os.Bundle
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
-import androidx.recyclerview.widget.StaggeredGridLayoutManager
-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_info_bmob
-import com.zjgsu.jianshu.Bmob.Perception_bmob
-import kotlinx.android.synthetic.main.activity_book_info.*
-import kotlinx.android.synthetic.main.title.*
-
-
-class Book_informationActivity : AppCompatActivity() {
- private var author_name: String = ""
- private val perceptionList = ArrayList()
- var Mycomment: Boolean = false
- private lateinit var Bookname: String
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_book_info)
- supportActionBar?.hide()
- Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
- Bookname = intent.getStringExtra("Book_name").toString()
- inits()
- val layoutManager =
- StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL)//第一个参数是列数
- recyclerView3.layoutManager = layoutManager
- var adapter = GoodsuibiAdapter(perceptionList)
- recyclerView3.adapter = adapter
- val query = BmobQuery()
- query.addWhereEqualTo("name", Bookname)
- 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`)
- book_imageview.setImageBitmap(bitmap)
-
- } catch (e: Exception) {
- e.printStackTrace()
- }
- }
- }.start()
- if (p.buxing + p.tuijian + p.buxing != 0) {
- var tuijian_res: Double = 0.0
- tuijian_res = (p.tuijian) * 100.0 / (p.buxing + p.tuijian + p.yiban)
- progressBar_henhao.progress =
- p.tuijian * 100 / (p.buxing + p.tuijian + p.yiban)
- progressBar_yiban.progress =
- p.yiban * 100 / (p.buxing + p.tuijian + p.yiban)
- progressBar_buxing.progress =
- p.buxing * 100 / (p.buxing + p.tuijian + p.yiban)
- val str: String = String.format("%.2f", tuijian_res)
- textView10.text = "简书推荐值 " + str + "%"
- }
- }
- }
- }
- }
- })
-// val query1 = BmobQuery()
-// query1.addWhereEqualTo("objectId", Bookname)
-// query1.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 = Uri.parse(p!!.view1.url)
-// mVideoView1.setVideoURI(url)
-// mVideoView1.start()
-//
-// } catch (e: Exception) {
-// e.printStackTrace()
-// }
-// }
-// }.start()
-// }
-// }
-// }
-// }
-// })
-// query1.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 = Uri.parse(p!!.view2.url)
-// mVideoView2.setVideoURI(url)
-// mVideoView2.start()
-// } catch (e: Exception) {
-// e.printStackTrace()
-// }
-// }
-// }.start()
-// }
-// }
-// }
-// }
-// })
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- Book_name_View.text = i.name
- book_authorname.text = i.author_name
- author_name=i.author_name
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- book_authorname.setOnClickListener {
- val intent = Intent(this, author_introductionActivity::class.java)
- intent.putExtra("author_name", author_name)
- startActivity(intent)
- }
- b_henhao.setOnClickListener {
- if (Mycomment == false) {
- Mycomment = true
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- i.settuijian(i.tuijian + 1)
- i.update(i.objectId, object : UpdateListener() {
- override fun done(p0: BmobException?) {
- if (p0 == null) {
- Toast.makeText(
- this@Book_informationActivity,
- "评价成功!",
- Toast.LENGTH_LONG
- ).show()
- } else {
- Log.d(
- "保存数据!!!!!!!!!!!!!!!!!!",
- p0.message.toString()
- )
- }
- }
- })
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- } else
- Toast.makeText(this, "仅能评价一次!", Toast.LENGTH_SHORT).show()
- }
- b_yiban.setOnClickListener {
- if (Mycomment == false) {
- Mycomment = true
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- i.setyiban(i.yiban + 1)
- i.update(i.objectId, object : UpdateListener() {
- override fun done(p0: BmobException?) {
- if (p0 == null) {
- Toast.makeText(
- this@Book_informationActivity,
- "评价成功!",
- Toast.LENGTH_LONG
- ).show()
- } else {
- Log.d(
- "保存数据!!!!!!!!!!!!!!!!!!",
- p0.message.toString()
- )
- }
- }
- })
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- } else
- Toast.makeText(this, "仅能评价一次!", Toast.LENGTH_SHORT).show()
- }
- b_buxing.setOnClickListener {
- if (Mycomment == false) {
- Mycomment = true
- query.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- i.setbuxing(i.buxing + 1)
- i.update(i.objectId, object : UpdateListener() {
- override fun done(p0: BmobException?) {
- if (p0 == null) {
- Toast.makeText(
- this@Book_informationActivity,
- "评价成功!",
- Toast.LENGTH_LONG
- ).show()
- } else {
- Log.d(
- "保存数据!!!!!!!!!!!!!!!!!!",
- p0.message.toString()
- )
- }
- }
- })
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- } else
- Toast.makeText(this, "仅能评价一次!", Toast.LENGTH_SHORT).show()
- }
- titleback.setOnClickListener {
- val intent = Intent(this, MainActivity::class.java)
- startActivity(intent)
- finish()
- }
- titleAddBook.setOnClickListener {
- val query = BmobQuery()
- query.addWhereEqualTo("userid", UserId)
- query.addWhereEqualTo("b_name", Bookname)
- query.findObjects(object : FindListener() {
- override fun done(p0: MutableList?, p1: BmobException?) {
- if (p1 == null) {
- if (p0 != null && p0.size > 0) {
- Toast.makeText(this@Book_informationActivity, "书本已在您的书架中!", Toast.LENGTH_SHORT)
- } else {
- val bookshelf_record = BookShelf()
- bookshelf_record.settb_name(Bookname)
- bookshelf_record.setuserid(UserId)
- bookshelf_record.save(object : SaveListener() {
- override fun done(objectId: String?, e: BmobException?) {
- if (e == null) {
- titleAddBook.setImageResource(R.drawable.bookshelf2)
- Toast.makeText(this@Book_informationActivity,"添加成功",Toast.LENGTH_SHORT).show()
- } else {
-
- }
- }
- })
- }
- }
- }
- })
- }
- book_imageview.setOnClickListener {
- val intent = Intent(this, BookIntro::class.java)
- intent.putExtra("Book_name", Bookname)
- startActivity(intent)
- finish()
- }
- }
-
- private fun inits() {
- val myquery = BmobQuery()
- myquery.addWhereEqualTo("b_name", Bookname)
- myquery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- perceptionList.add(Perception(i.objectId))
- val adapter = GoodsuibiAdapter(perceptionList)
- recyclerView3.adapter = adapter
- }
- } else {
- Log.d("error", "error")
- }
- }
- })
- val myquery2 = BmobQuery()
- myquery2.addWhereEqualTo("userid", UserId)
- myquery2.addWhereEqualTo("b_name", Bookname)
- myquery2.findObjects(object : FindListener() {
- override fun done(p0: MutableList?, p1: BmobException?) {
- if (p1 == null) {
- if (p0 != null && p0.size > 0) {
- titleAddBook.setImageResource(R.drawable.bookshelf2)
- }
- }
- }
- })
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/GoodBookActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/GoodBookActivity.kt
index 2975351..2d7ed8b 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/GoodBookActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/GoodBookActivity.kt
@@ -1,4 +1,98 @@
-package com.zjgsu.jianshu.Activity
+package com.zjgsu.jianshu
-class GoodBookActivity {
+import android.content.Intent
+import android.os.Bundle
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+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.BookRankAdapter
+import com.zjgsu.jianshu.Bmob.Book_info_bmob
+import com.zjgsu.jianshu.Book_rank
+import com.zjgsu.jianshu.MainActivity
+import com.zjgsu.jianshu.NavigationHelper
+import com.zjgsu.jianshu.R
+import kotlinx.android.synthetic.main.activity_bookrank.*
+
+class GoodBookActivity : AppCompatActivity() {
+ private var goodbookList=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(goodbookList,false)
+ bookrank_recyclerView.layoutManager=
+ StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
+ bookrank_recyclerView.adapter=adapter
+ bookrank_swipeRefresh.setOnRefreshListener {
+ loadBookRanks() //下拉刷新
+ }
+ loadBookRanks()
+ bookrank_title.text="一周好评图书榜单"
+ bookrank_subtitle.text="10本・ 9852人关注"
+ returnTOCity()
+ }
+ private fun loadBookRanks(){
+ val queryGoodBooks = BmobQuery()
+ queryGoodBooks.findObjects(object : FindListener() {
+ override fun done(books: List?, e: BmobException?) {
+ if (e == null) {
+ bookrank_swipeRefresh.isRefreshing = false
+ // 清空之前的书籍列表
+ 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(10)
+ 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=b.introduce
+ )
+ goodbookList.add(bookRank)
+ adapter.notifyDataSetChanged() // 确保在这里更新适配器
+ }
+ }
+ } else {
+ // 处理错误情况
+ Toast.makeText(
+ this@GoodBookActivity,
+ "Failed to retrieve books: ${e.message}",
+ Toast.LENGTH_SHORT
+ ).show()
+ }
+ }
+ })
+ }
+ private fun returnTOCity() {
+ bookrank_return.setOnClickListener {
+ val intent = Intent(this, MainActivity::class.java)
+ startActivity(intent)
+ finish() // 结束当前页面
+ }
+ }
}
\ 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
index f9695af..7dd0a6b 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/HotBookActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/HotBookActivity.kt
@@ -1,6 +1,8 @@
package com.zjgsu.jianshu
+import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
+import android.util.Log
import android.widget.SearchView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
@@ -20,23 +22,26 @@ import kotlinx.android.synthetic.main.activity_main.*
class HotBookActivity: AppCompatActivity() {
private var hotbookList=ArrayList()
lateinit var adapter:BookRankAdapter
+ lateinit var currentPosition: Pair
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_bookrank)
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
- adapter= BookRankAdapter(hotbookList)
+ adapter= BookRankAdapter(hotbookList,true)
bookrank_recyclerView.layoutManager=StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
bookrank_recyclerView.adapter=adapter
bookrank_swipeRefresh.setOnRefreshListener {
loadBookRanks() //下拉刷新
}
loadBookRanks()
- bookrank_title.text="热门图书榜单"
+ bookrank_title.text="一周热门图书榜单"
+ bookrank_subtitle.text="10本・ 8213人关注"
+ returnTOCity()
}
private fun loadBookRanks(){
val queryHotBooks = BmobQuery()
queryHotBooks.order("-countOfReaders") // 根据 countOfReaders 降序排序
- queryHotBooks.setLimit(10) // 限制查询结果的数量为3
+ queryHotBooks.setLimit(10) // 限制查询结果的数量为10
queryHotBooks.findObjects(object : FindListener() {
override fun done(books: List?, e: BmobException?) {
bookrank_swipeRefresh.isRefreshing = false
@@ -69,9 +74,12 @@ class HotBookActivity: AppCompatActivity() {
}
})
}
- private fun returnTOCity(){
- bookrank_return.setOnClickListener{
- NavigationHelper.navigateTo(this, MainActivity::class.java)
+ //TODO:未来添加一个返回到上个页面指定位置的功能
+ private fun returnTOCity() {
+ bookrank_return.setOnClickListener {
+ val intent = Intent(this, MainActivity::class.java)
+ startActivity(intent)
+ finish() // 结束当前页面
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/LoginActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/LoginActivity.kt
index 950bc9f..bfdc113 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/LoginActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/LoginActivity.kt
@@ -4,75 +4,71 @@ import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
-import android.os.PersistableBundle
-import android.util.Log
-import android.widget.TextView
import android.widget.Toast
-import androidx.core.content.ContextCompat
import cn.bmob.v3.Bmob
import cn.bmob.v3.BmobQuery
-import cn.bmob.v3.BmobUser
import cn.bmob.v3.exception.BmobException
import cn.bmob.v3.listener.FindListener
import com.zjgsu.jianshu.Bmob.User_bmob
import kotlinx.android.synthetic.main.activity_login.*
-import kotlinx.android.synthetic.main.activity_register.*
class LoginActivity : AppCompatActivity() {
- // var mBtnLogin:TextView= TextView(this)
override fun onCreate(savedInstanceState: Bundle?) {
- var flag: Boolean = false
- var done: Boolean = false
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
- Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
+ Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
+ setClickListeners()
+ }
+
+ private fun setClickListeners() {
forget_password.setOnClickListener {
- val intent = Intent(this, FindpwdActivity::class.java)
- startActivity(intent)
+ startActivity(Intent(this, FindpwdActivity::class.java))
finish()
}
+
bt_register.setOnClickListener {
- val intent = Intent(this, RegisterActivity::class.java)
- startActivity(intent)
+ startActivity(Intent(this, RegisterActivity::class.java))
finish()
}
+
bt_login.setOnClickListener {
- val use_account: String = et_blackOutName.text.toString()
- val use_pwd: String = et_UserPassword.text.toString()
- val bmobQuery = BmobQuery()
- bmobQuery.findObjects(object : FindListener() {
- override fun done(list: List, e: BmobException?) {
- if (e == null) {
- for (i in list) {
- if (use_account.equals(i.account) && use_pwd.equals(i.password)) {
- val editor=getSharedPreferences("userinf", Context.MODE_PRIVATE).edit()
- editor.putString("user_id",i.objectId)
- editor.apply()
- flag = true
- val intent = Intent(this@LoginActivity, MainActivity::class.java)
- intent.putExtra("userid",i.objectId)
- startActivity(intent)
- Toast.makeText(this@LoginActivity, "登陆成功!", Toast.LENGTH_SHORT)
- .show()
- break
- }
- }
- done = true
- }
- }
- })
- if (done) {
- var a: String = ""
- if (flag)
- a = "1"
- else
- a = "0"
- Log.d("zynnnb", a)
- if (use_account.isEmpty() || use_pwd.isEmpty())
- Toast.makeText(this, "账号或密码不能为空白", Toast.LENGTH_SHORT).show()
- else if (flag != true)
- Toast.makeText(this@LoginActivity, "账号或密码不正确", Toast.LENGTH_SHORT).show()
- }
+ handleLogin()
}
}
-}
+
+ private fun handleLogin() {
+ val userAccount = et_blackOutName.text.toString()
+ val userPassword = et_UserPassword.text.toString()
+
+ if (userAccount.isEmpty() || userPassword.isEmpty()) {
+ Toast.makeText(this, "账号或密码不能为空白", Toast.LENGTH_SHORT).show()
+ return
+ }
+
+ val bmobQuery = BmobQuery()
+ bmobQuery.findObjects(object : FindListener() {
+ override fun done(users: List, e: BmobException?) {
+ if (e == null) {
+ for (user in users) {
+ if (userAccount == user.account && userPassword == user.password) {
+ saveUserInfo(user.objectId)
+ startActivity(Intent(this@LoginActivity, MainActivity::class.java))
+ Toast.makeText(this@LoginActivity, "登陆成功!", Toast.LENGTH_SHORT).show()
+ finish()
+ return
+ }
+ }
+ Toast.makeText(this@LoginActivity, "账号或密码不正确", Toast.LENGTH_SHORT).show()
+ } else {
+ Toast.makeText(this@LoginActivity, "登录时发生错误: ${e.message}", Toast.LENGTH_SHORT).show()
+ }
+ }
+ })
+ }
+
+ private fun saveUserInfo(userId: String) {
+ getSharedPreferences("userinf", Context.MODE_PRIVATE).edit()
+ .putString("user_id", userId)
+ .apply()
+ }
+}
\ No newline at end of file
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 0c2bb92..d9f4578 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/MainActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/MainActivity.kt
@@ -13,15 +13,12 @@ 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_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
@@ -36,6 +33,8 @@ class MainActivity : AppCompatActivity() {
supportActionBar?.setHomeAsUpIndicator(R.drawable.menu)
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
adapter = BookAdapter(bookList)
+// val userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "") //全局范围内userid,登录的时候存进来
+// Log.d("LoginActivity", "User ID: $userId")
recyclerView.layoutManager =
StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
recyclerView.adapter = adapter
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 42c2c52..538e491 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/MyActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/MyActivity.kt
@@ -1,5 +1,6 @@
package com.zjgsu.jianshu
+import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
@@ -24,15 +25,15 @@ class MyActivity : AppCompatActivity() {
//登录的用户名
public val user_account="0509"
-// public val user="斤鱼"
-
+ lateinit var userId:String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my)
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754") //连接bmob
+ userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString()
val query = BmobQuery()
- query.addWhereEqualTo("objectId", UserId)
+ query.addWhereEqualTo("objectId", userId)
query.findObjects(object : FindListener() {
override fun done(p0: MutableList?, p1: BmobException?) {
if (p1 == null) {
@@ -89,7 +90,7 @@ class MyActivity : AppCompatActivity() {
tuichu.setOnClickListener {
val intent= Intent(this,LoginActivity::class.java)
- UserId=""
+ userId=""
startActivity(intent)
finish()
}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Activity/MyPostActivity.kt b/app/src/main/java/com/zjgsu/jianshu/Activity/MyPostActivity.kt
index afec7ed..853e8de 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/MyPostActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/MyPostActivity.kt
@@ -1,5 +1,6 @@
package com.zjgsu.jianshu.Activity
+import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
@@ -15,10 +16,12 @@ import kotlinx.android.synthetic.main.activity_my_post.*
class MyPostActivity : AppCompatActivity() {
private val PerceptionList = ArrayList()
+ lateinit var userId:String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_my_post)
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
+ userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString()
inits()
val layoutManager=LinearLayoutManager(this)
@@ -40,7 +43,7 @@ class MyPostActivity : AppCompatActivity() {
override fun done(list: List, e: BmobException?) {
if (e == null) {
for (i in list){
- if(i.userid== UserId) {
+ if(i.userid== userId) {
PerceptionList.add(Perception(i.objectId))
val adapter = PerceptionAdapter(PerceptionList)
myPost_recyclerView.adapter = adapter
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 ff11f0e..2255d89 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/PerceptionActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/PerceptionActivity.kt
@@ -1,5 +1,6 @@
package com.zjgsu.jianshu
+import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
@@ -18,10 +19,12 @@ import kotlin.concurrent.thread
class PerceptionActivity : AppCompatActivity() {
private val PerceptionList = ArrayList()
+ lateinit var userId:String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_perception)
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
+ userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString()
inits()
val layoutManager=LinearLayoutManager(this)
perception_recyclerView.layoutManager = layoutManager
@@ -39,7 +42,7 @@ class PerceptionActivity : AppCompatActivity() {
}
fab.setOnClickListener {
val intent=Intent(this,sendPerceptionActivity::class.java)
- intent.putExtra("userid", UserId)
+ intent.putExtra("userid", userId)
startActivity(intent)
finish()
}
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 88416d5..632ee87 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
@@ -1,5 +1,6 @@
package com.zjgsu.jianshu.Activity
+import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
@@ -28,10 +29,12 @@ class Perception_informationActivity:AppCompatActivity() {
private lateinit var perceptionid:String
private lateinit var bookName:String
private val commentlist=ArrayList()
+ lateinit var userId:String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_perception_infomation)
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
+ userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString()
perceptionid = intent.getStringExtra("PerceptionId").toString()
Log.d("mytest",perceptionid)
inits()
@@ -44,7 +47,7 @@ class Perception_informationActivity:AppCompatActivity() {
val comment=Comment_bmob()
comment.text=yourcomment.text.toString()
comment.perceptionid=perceptionid
- comment.comment_personid= UserId
+ comment.comment_personid= userId
comment.save(object : SaveListener() {
override fun done(objectId: String?, e: BmobException?) {
if (e == null) {
@@ -65,7 +68,7 @@ class Perception_informationActivity:AppCompatActivity() {
})
}
inf_bookInf.setOnClickListener{
- val intent = Intent(this, Book_informationActivity::class.java)
+ val intent = Intent(this, BookInformationActivity::class.java)
intent.putExtra("Book_name", bookName)
startActivity(intent)
finish()
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 fe5e332..5dd3926 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Activity/sendPerceptionActivity.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Activity/sendPerceptionActivity.kt
@@ -1,5 +1,6 @@
package com.zjgsu.jianshu.Activity
+import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
@@ -25,11 +26,13 @@ import java.net.URL
class sendPerceptionActivity:AppCompatActivity() {
private var bookList = ArrayList()
lateinit var myuserid:String
+ lateinit var userId:String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sendperception)
supportActionBar?.hide()
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
+ userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString()
myuserid=intent.getStringExtra("userid").toString()
inits()
val layoutManager =
@@ -94,7 +97,7 @@ class sendPerceptionActivity:AppCompatActivity() {
override fun done(list:List,e:BmobException?){
if(e==null){
for(i in list){
- if(i.objectId.equals(UserId)) {
+ if(i.objectId.equals(userId)) {
object : Thread() {
override fun run() {
try {
diff --git a/app/src/main/java/com/zjgsu/jianshu/Adapter/BillboardAdapter.kt b/app/src/main/java/com/zjgsu/jianshu/Adapter/BillboardAdapter.kt
index dee565b..9005118 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Adapter/BillboardAdapter.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/BillboardAdapter.kt
@@ -40,7 +40,6 @@ class BillboardAdapter(var listOfbookRankList: List>) : Recycler
return ViewHolder(view)
}
-
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val bookRankList = listOfbookRankList[position]
Log.d("BillboardAdapter", "Size of bookRankList at position $position")
@@ -51,6 +50,7 @@ class BillboardAdapter(var listOfbookRankList: List>) : Recycler
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)
}
}
@@ -59,7 +59,10 @@ class BillboardAdapter(var listOfbookRankList: List>) : Recycler
holder.bookRank_decr1.text = "简书推荐值:"+bookRankList[0].score
holder.bookRank_decr2.text = "简书推荐值:"+bookRankList[1].score
holder.bookRank_decr3.text = "简书推荐值:"+bookRankList[2].score
-
+ holder.bookRank_backimg.setOnClickListener {
+ val intent = Intent(holder.itemView.context, GoodBookActivity::class.java)
+ ContextCompat.startActivity(holder.itemView.context, intent, null)
+ }
}
holder.bookRank_name1.text = bookRankList[0].name
Glide.with(holder.itemView.context)
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 688660a..c54ef98 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter.kt
@@ -43,15 +43,17 @@ inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
holder.bookList_Introduce.text = book.introduce
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])
- 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)
+
+// //添加金银铜奖牌
+// 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
@@ -59,7 +61,7 @@ inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
.error(R.drawable.fail_load) // 设置加载失败的图
.into(holder.bookList_Image)
holder.outerLinearLayout.setOnClickListener{
- val intent = Intent(holder.itemView.context, Book_informationActivity::class.java)
+ val intent = Intent(holder.itemView.context, BookInformationActivity::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/BookAdapter2.kt b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter2.kt
index efa7021..b63c67f 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter2.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookAdapter2.kt
@@ -48,7 +48,7 @@ class BookAdapter2(val bookList: List) : RecyclerView.Adapter): RecyclerView.Adapter() {
+class BookRankAdapter(var bookList: List,val isHotList:Boolean): 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)
@@ -22,6 +22,7 @@ class BookRankAdapter(var bookList: List): RecyclerView.Adapter): RecyclerView.Adapter {
+ holder.bookrank_icon.setImageResource(R.drawable.gold)
+ holder.bookrank_icon.visibility = View.VISIBLE
+ }
+ 1 -> {
+ holder.bookrank_icon.setImageResource(R.drawable.silver)
+ holder.bookrank_icon.visibility = View.VISIBLE
+ }
+ 2 -> {
+ holder.bookrank_icon.setImageResource(R.drawable.copper)
+ holder.bookrank_icon.visibility = View.VISIBLE
+ }
+ else -> {
+ holder.bookrank_icon.visibility = View.GONE
+ }
+ }
Glide.with(holder.itemView.context)
.load(book.picUrl) // 确保你的Book对象有正确的图片URL
@@ -55,7 +67,7 @@ class BookRankAdapter(var bookList: List): RecyclerView.Adapter):RecyclerView.Adapter() {
+ lateinit var userId:String
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val bookList_Image: ImageView = view.findViewById(R.id.book_Image1)
val addButton:Button=view.findViewById(R.id.addButton)
@@ -65,7 +66,7 @@ class Book_authorAdapter(val bookList:List):RecyclerView.Adapter()
- query1.addWhereEqualTo("userid", UserId)
+ query1.addWhereEqualTo("userid", userId)
query1.addWhereEqualTo("b_name",book.name)
query1.findObjects(object :FindListener() {
override fun done(p0: MutableList?, p1: BmobException?) {
@@ -77,7 +78,7 @@ class Book_authorAdapter(val bookList:List):RecyclerView.Adapter):RecyclerView.Adapter()
- query.addWhereEqualTo("userid", UserId)
+ query.addWhereEqualTo("userid", userId)
query.addWhereEqualTo("b_name",book.name)
query.findObjects(object :FindListener(){
override fun done(p0: MutableList?, p1: BmobException?) {
@@ -96,8 +97,8 @@ class Book_authorAdapter(val bookList:List):RecyclerView.Adapter() {
override fun done(objectId: String?, e: BmobException?) {
if (e == null) {
diff --git a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookshelfAdapter.kt b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookshelfAdapter.kt
index 466473f..48de42a 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Adapter/BookshelfAdapter.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Adapter/BookshelfAdapter.kt
@@ -199,7 +199,7 @@ class BookshelfAdapter(val context: Context, val bookshelf: ArrayList) : RecyclerView.Ada
})
holder.perceptionList_bookInf.setOnClickListener(){
- val intent= Intent(holder.itemView.context,Book_informationActivity::class.java)
+ val intent= Intent(holder.itemView.context,BookInformationActivity::class.java)
intent.putExtra("Book_name",bookName)
ContextCompat.startActivity(holder.itemView.context, intent, null)
}
diff --git a/app/src/main/java/com/zjgsu/jianshu/Bmob/BookShelf.kt b/app/src/main/java/com/zjgsu/jianshu/Bmob/BookShelf.kt
index 48ae9b3..2671cfe 100644
--- a/app/src/main/java/com/zjgsu/jianshu/Bmob/BookShelf.kt
+++ b/app/src/main/java/com/zjgsu/jianshu/Bmob/BookShelf.kt
@@ -5,7 +5,7 @@ import cn.bmob.v3.BmobObject
class BookShelf:BmobObject(){
var b_name:String = ""
var userid:String=""
- fun settb_name(bookname: String){
+ fun setb_name(bookname: String){
this.b_name=bookname
}
fun setuserid(uid: String){
diff --git a/app/src/main/res/drawable/edit_bg.xml b/app/src/main/res/drawable/edit_bg.xml
index 465f615..74ae8d8 100644
--- a/app/src/main/res/drawable/edit_bg.xml
+++ b/app/src/main/res/drawable/edit_bg.xml
@@ -12,8 +12,8 @@
android:radius="5dip"
/>
+ android:width="2dp"
+ android:color="#000000"/>
diff --git a/app/src/main/res/drawable/white_button_bg.xml b/app/src/main/res/drawable/white_button_bg.xml
new file mode 100644
index 0000000..33ce803
--- /dev/null
+++ b/app/src/main/res/drawable/white_button_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_book_info.xml b/app/src/main/res/layout/activity_book_info.xml
index eb9973c..bd3c58d 100644
--- a/app/src/main/res/layout/activity_book_info.xml
+++ b/app/src/main/res/layout/activity_book_info.xml
@@ -12,7 +12,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
-
+
diff --git a/app/src/main/res/layout/activity_bookrank.xml b/app/src/main/res/layout/activity_bookrank.xml
index 60f093e..83dec6d 100644
--- a/app/src/main/res/layout/activity_bookrank.xml
+++ b/app/src/main/res/layout/activity_bookrank.xml
@@ -1,6 +1,5 @@
@@ -12,38 +11,55 @@
+ android:orientation="horizontal"
+ android:gravity="center_vertical">
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ android:background="@drawable/white_button_bg" />
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 6c07124..7897579 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -52,7 +52,6 @@
android:id="@+id/et_blackOutName"
android:layout_width="match_parent"
android:layout_height="50dp"
- android:background="@drawable/edit_bg"
android:hint="请输入账号"
android:paddingLeft="2dp"
android:textSize="20sp" />
@@ -78,7 +77,6 @@
android:id="@+id/et_UserPassword"
android:layout_width="250dp"
android:layout_height="50dp"
- android:background="@drawable/edit_bg"
android:hint="密码"
android:inputType="textPassword"
android:paddingLeft="2dp"
diff --git a/app/src/main/res/layout/book_rank2_item.xml b/app/src/main/res/layout/book_rank2_item.xml
index 4d45da5..3cd845c 100644
--- a/app/src/main/res/layout/book_rank2_item.xml
+++ b/app/src/main/res/layout/book_rank2_item.xml
@@ -21,12 +21,26 @@
android:orientation="horizontal">
-
+ android:layout_weight="50">
+
+
+
+
+
+
-
+ android:src="@drawable/addbook" />
diff --git a/app/src/main/res/layout/title.xml b/app/src/main/res/layout/bookinfo_title.xml
similarity index 77%
rename from app/src/main/res/layout/title.xml
rename to app/src/main/res/layout/bookinfo_title.xml
index 5c3934d..e0109ed 100644
--- a/app/src/main/res/layout/title.xml
+++ b/app/src/main/res/layout/bookinfo_title.xml
@@ -4,15 +4,11 @@
android:layout_width="match_parent"
android:layout_height="45dp">
-
+
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 435bacf..43ca30d 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,6 +1,6 @@
-