跳转功能完善,可以返回上个页面
This commit is contained in:
parent
985582f8de
commit
9210235f45
@ -29,12 +29,14 @@ class BookInformationActivity : AppCompatActivity() {
|
||||
private lateinit var authorName: String
|
||||
private lateinit var userId:String
|
||||
private lateinit var picurl:String
|
||||
private var sourceActivityClass: Class<*>? = null
|
||||
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()
|
||||
sourceActivityClass = intent.getSerializableExtra("Source_Activity") as? Class<*>
|
||||
loadPerceptions()
|
||||
setupRecyclerView()
|
||||
loadBookInfo()
|
||||
@ -102,7 +104,7 @@ class BookInformationActivity : AppCompatActivity() {
|
||||
queryBookshelf.findObjects(object : FindListener<BookShelf>() {
|
||||
override fun done(bookshelfItems: MutableList<BookShelf>?, e: BmobException?) {
|
||||
if (e == null && bookshelfItems != null && bookshelfItems.isNotEmpty()) {
|
||||
bookinfo_addBook.setImageResource(R.drawable.bookshelf2)
|
||||
bookinfo_addBook.setImageResource(R.drawable.alreadyin)
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -117,8 +119,15 @@ class BookInformationActivity : AppCompatActivity() {
|
||||
}
|
||||
//TODO:不一定回到MainActivity::class,后面还要在跳转前保存上一个页面
|
||||
bookinfo_return.setOnClickListener {
|
||||
if (sourceActivityClass != null) {
|
||||
// 返回到上一个页面
|
||||
val intent = Intent(this, sourceActivityClass!!)
|
||||
startActivity(intent)
|
||||
} else {
|
||||
// 如果没有来源页面信息,则返回到 MainActivity
|
||||
val intent = Intent(this, MainActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
finish()
|
||||
}
|
||||
|
||||
@ -131,10 +140,14 @@ class BookInformationActivity : AppCompatActivity() {
|
||||
intent.putExtra("Book_name", bookName)
|
||||
startActivity(intent)
|
||||
}
|
||||
toBookshelf.setOnClickListener {
|
||||
val intent = Intent(this, BookShelfActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
setCommentClickListeners()
|
||||
}
|
||||
|
||||
//TODO:以后可以考虑再次点击这个“已加入的按钮”后,弹出一个对话框:是否将该书移除,然后将该书从书架中移除。而不是弹:该书已在您的书架中
|
||||
private fun addBookToBookshelf() {
|
||||
val queryBookshelf = BmobQuery<BookShelf>()
|
||||
queryBookshelf.addWhereEqualTo("userid", userId)
|
||||
@ -149,7 +162,7 @@ class BookInformationActivity : AppCompatActivity() {
|
||||
bookshelfRecord.save(object : SaveListener<String>() {
|
||||
override fun done(objectId: String?, saveException: BmobException?) {
|
||||
if (saveException == null) {
|
||||
bookinfo_addBook.setImageResource(R.drawable.bookshelf2)
|
||||
bookinfo_addBook.setImageResource(R.drawable.alreadyin)
|
||||
Toast.makeText(
|
||||
this@BookInformationActivity,
|
||||
"添加成功",
|
||||
@ -164,7 +177,7 @@ class BookInformationActivity : AppCompatActivity() {
|
||||
}
|
||||
})
|
||||
} else {
|
||||
Toast.makeText(this@BookInformationActivity, "书本已在您的书架中!", Toast.LENGTH_SHORT)
|
||||
Toast.makeText(this@BookInformationActivity, "该书已在您的书架中!", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.zjgsu.jianshu
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
@ -24,7 +25,8 @@ class GoodBookActivity : AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_bookrank)
|
||||
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
|
||||
adapter= BookRankAdapter(goodbookList,false)
|
||||
val userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString() //全局范围内userid,登录的时候存进来
|
||||
adapter= BookRankAdapter(this,goodbookList,false,userId)
|
||||
bookrank_recyclerView.layoutManager=
|
||||
StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
|
||||
bookrank_recyclerView.adapter=adapter
|
||||
|
@ -1,4 +1,5 @@
|
||||
package com.zjgsu.jianshu
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
@ -27,7 +28,8 @@ class HotBookActivity: AppCompatActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_bookrank)
|
||||
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")//连接bmob
|
||||
adapter= BookRankAdapter(hotbookList,true)
|
||||
val userId = getSharedPreferences("userinf", Context.MODE_PRIVATE).getString("user_id", "").toString()
|
||||
adapter= BookRankAdapter(this,hotbookList,true,userId)
|
||||
bookrank_recyclerView.layoutManager=StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
|
||||
bookrank_recyclerView.adapter=adapter
|
||||
bookrank_swipeRefresh.setOnRefreshListener {
|
||||
|
@ -30,7 +30,7 @@ class LiteratureActivity : AppCompatActivity() {
|
||||
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
|
||||
val titleTextView = findViewById<TextView>(R.id.categoryPage_title)
|
||||
titleTextView.text = "文学"
|
||||
adapter = BookAdapter2(bookList)
|
||||
adapter = BookAdapter2(bookList,1)
|
||||
categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
|
||||
categoryPage_recyclerView.adapter = adapter
|
||||
categoryPage_swipeRefresh.setOnRefreshListener {
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.zjgsu.jianshu
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.text.TextUtils
|
||||
|
@ -29,7 +29,7 @@ class ManagementActivity:AppCompatActivity() {
|
||||
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
|
||||
val titleTextView = findViewById<TextView>(R.id.categoryPage_title)
|
||||
titleTextView.text = "管理学"
|
||||
adapter = BookAdapter2(bookList)
|
||||
adapter = BookAdapter2(bookList,2)
|
||||
categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
|
||||
categoryPage_recyclerView.adapter = adapter
|
||||
categoryPage_swipeRefresh.setOnRefreshListener {
|
||||
|
@ -30,7 +30,7 @@ class PhilosophyActivity:AppCompatActivity() {
|
||||
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
|
||||
val titleTextView = findViewById<TextView>(R.id.categoryPage_title)
|
||||
titleTextView.text = "哲学"
|
||||
adapter = BookAdapter2(bookList)
|
||||
adapter = BookAdapter2(bookList,5)
|
||||
categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
|
||||
categoryPage_recyclerView.adapter = adapter
|
||||
categoryPage_swipeRefresh.setOnRefreshListener {
|
||||
|
@ -29,7 +29,7 @@ class PsychologyActivity:AppCompatActivity() {
|
||||
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
|
||||
val titleTextView = findViewById<TextView>(R.id.categoryPage_title)
|
||||
titleTextView.text = "心理学"
|
||||
adapter = BookAdapter2(bookList)
|
||||
adapter = BookAdapter2(bookList,3)
|
||||
categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
|
||||
categoryPage_recyclerView.adapter = adapter
|
||||
categoryPage_swipeRefresh.setOnRefreshListener {
|
||||
|
@ -30,7 +30,7 @@ class ScienceActivity:AppCompatActivity() {
|
||||
Bmob.initialize(this, "8f9f1d1ea520b0ce4f84a6fa83a5f754")
|
||||
val titleTextView = findViewById<TextView>(R.id.categoryPage_title)
|
||||
titleTextView.text = "科学"
|
||||
adapter = BookAdapter2(bookList)
|
||||
adapter = BookAdapter2(bookList,4)
|
||||
categoryPage_recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
|
||||
categoryPage_recyclerView.adapter = adapter
|
||||
categoryPage_swipeRefresh.setOnRefreshListener {
|
||||
|
@ -63,6 +63,7 @@ inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
||||
holder.outerLinearLayout.setOnClickListener{
|
||||
val intent = Intent(holder.itemView.context, BookInformationActivity::class.java)
|
||||
intent.putExtra("Book_name", book.name)
|
||||
intent.putExtra("Source_Activity", MainActivity::class.java)
|
||||
ContextCompat.startActivity(holder.itemView.context, intent, null)
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ import java.io.InputStream
|
||||
import java.net.HttpURLConnection
|
||||
import java.net.URL
|
||||
|
||||
class BookAdapter2(val bookList: List<Book>) : RecyclerView.Adapter<BookAdapter2.ViewHolder>() {
|
||||
class BookAdapter2(val bookList: List<Book>,val categoryId:Int) : RecyclerView.Adapter<BookAdapter2.ViewHolder>() {
|
||||
|
||||
inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
||||
val bookList_Image: ImageView = view.findViewById(R.id.book_Image)
|
||||
|
@ -1,19 +1,29 @@
|
||||
package com.zjgsu.jianshu.Adapter
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.media.Image
|
||||
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 android.widget.Toast
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import cn.bmob.v3.BmobQuery
|
||||
import cn.bmob.v3.exception.BmobException
|
||||
import cn.bmob.v3.listener.FindListener
|
||||
import cn.bmob.v3.listener.SaveListener
|
||||
import com.bumptech.glide.Glide
|
||||
import com.zjgsu.jianshu.*
|
||||
import com.zjgsu.jianshu.Bmob.BookShelf
|
||||
import kotlinx.android.synthetic.main.bookinfo_title.*
|
||||
|
||||
class BookRankAdapter(var bookList: List<Book_rank>,val isHotList:Boolean): RecyclerView.Adapter<BookRankAdapter.ViewHolder>() {
|
||||
class BookRankAdapter(private val context: Context,var bookList: List<Book_rank>, val isHotList: Boolean, val userId: String) :
|
||||
RecyclerView.Adapter<BookRankAdapter.ViewHolder>() {
|
||||
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)
|
||||
@ -23,10 +33,13 @@ class BookRankAdapter(var bookList: List<Book_rank>,val isHotList:Boolean): Recy
|
||||
val outerLinearLayout: LinearLayout = view.findViewById(R.id.bookrank_outerLinearLayout)
|
||||
val bookrank_author: TextView = view.findViewById(R.id.bookrank_author)
|
||||
val bookrank_icon: ImageView = view.findViewById(R.id.bookrank_icon)
|
||||
val bookrank_addbook: ImageView = view.findViewById(R.id.bookrank_addbook)
|
||||
val bookrank_add:TextView=view.findViewById(R.id.bookrank_add)
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.book_rank2_item, parent, false)
|
||||
val view =
|
||||
LayoutInflater.from(parent.context).inflate(R.layout.book_rank2_item, parent, false)
|
||||
return ViewHolder(view)
|
||||
}
|
||||
|
||||
@ -36,7 +49,8 @@ class BookRankAdapter(var bookList: List<Book_rank>,val isHotList:Boolean): Recy
|
||||
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)
|
||||
R.drawable.color_lightgreen, R.drawable.color_flesh
|
||||
)
|
||||
holder.innerLinearLayout.setBackgroundResource(backgrounds[position % backgrounds.size])
|
||||
if (isHotList)
|
||||
holder.bookrank_desc.text = "在读人数:" + book.courtOfReaders
|
||||
@ -69,8 +83,62 @@ class BookRankAdapter(var bookList: List<Book_rank>,val isHotList:Boolean): Recy
|
||||
holder.outerLinearLayout.setOnClickListener {
|
||||
val intent = Intent(holder.itemView.context, BookInformationActivity::class.java)
|
||||
intent.putExtra("Book_name", book.name)
|
||||
if(isHotList)
|
||||
intent.putExtra("Source_Activity", HotBookActivity::class.java)
|
||||
else
|
||||
intent.putExtra("Source_Activity", GoodBookActivity::class.java)
|
||||
ContextCompat.startActivity(holder.itemView.context, intent, null)
|
||||
}
|
||||
holder.bookrank_addbook.setOnClickListener {
|
||||
val queryBookshelf = BmobQuery<BookShelf>()
|
||||
queryBookshelf.addWhereEqualTo("userid", userId)
|
||||
queryBookshelf.addWhereEqualTo("b_name", book.name)
|
||||
queryBookshelf.findObjects(object : FindListener<BookShelf>() {
|
||||
override fun done(bookshelfItems: MutableList<BookShelf>?, e: BmobException?) {
|
||||
if (e == null && (bookshelfItems == null || bookshelfItems.isEmpty())) {
|
||||
val bookshelfRecord = BookShelf()
|
||||
bookshelfRecord.setb_name(book.name)
|
||||
bookshelfRecord.setuserid(userId)
|
||||
bookshelfRecord.setpicurl(book.picUrl)
|
||||
bookshelfRecord.save(object : SaveListener<String>() {
|
||||
override fun done(objectId: String?, saveException: BmobException?) {
|
||||
if (saveException == null) {
|
||||
holder.bookrank_addbook.setImageResource(R.drawable.bookshelf2)
|
||||
Toast.makeText(
|
||||
context,
|
||||
"添加成功",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
} else {
|
||||
Log.e(
|
||||
"BookInfo",
|
||||
"Error adding book to bookshelf: ${saveException.message}"
|
||||
)
|
||||
}
|
||||
}
|
||||
})
|
||||
} else {
|
||||
Toast.makeText(context, "该书已在您的书架中!", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
fun judgeInBookshelf() {
|
||||
val queryBookshelf = BmobQuery<BookShelf>()
|
||||
queryBookshelf.addWhereEqualTo("userid", userId)
|
||||
queryBookshelf.addWhereEqualTo("b_name", book.name)
|
||||
queryBookshelf.findObjects(object : FindListener<BookShelf>() {
|
||||
override fun done(bookshelfItems: MutableList<BookShelf>?, e: BmobException?) {
|
||||
if (e == null && bookshelfItems != null && bookshelfItems.isNotEmpty()) {
|
||||
holder.bookrank_addbook.setImageResource(R.drawable.alreadyin)
|
||||
holder.bookrank_add.text="已加入"
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
judgeInBookshelf()
|
||||
}
|
||||
|
||||
override fun getItemCount() = bookList.size
|
||||
}
|
@ -61,6 +61,7 @@ class BookshelfAdapter(val context: Context, val bookshelf: ArrayList<Book_Shelf
|
||||
} else {
|
||||
val intent = Intent(holder.itemView.context, BookInformationActivity::class.java)
|
||||
intent.putExtra("Book_name", book.bkname)
|
||||
intent.putExtra("Source_Activity", BookShelfActivity::class.java)
|
||||
ContextCompat.startActivity(holder.itemView.context, intent, null)
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,6 @@
|
||||
app:cardElevation="4dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/bookrank_outerLinearLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
@ -16,6 +15,7 @@
|
||||
|
||||
<!-- 第一行:图书封面和简介 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/bookrank_outerLinearLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="200dp"
|
||||
android:orientation="horizontal">
|
||||
@ -117,7 +117,7 @@
|
||||
android:src="@drawable/addbook" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvLikeText"
|
||||
android:id="@+id/bookrank_add"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="加入书架"
|
||||
|
@ -25,15 +25,15 @@
|
||||
android:layout_width="34dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center"
|
||||
app:srcCompat="@drawable/bookshelf1" />
|
||||
app:srcCompat="@drawable/addbook" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView2"
|
||||
android:layout_width="37dp"
|
||||
android:layout_height="41dp"
|
||||
android:id="@+id/toBookshelf"
|
||||
android:layout_width="34dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_gravity="center"
|
||||
android:layout_margin="5dp"
|
||||
app:srcCompat="@drawable/shopcart" />
|
||||
app:srcCompat="@drawable/bookshelf1" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView7"
|
||||
|
Loading…
x
Reference in New Issue
Block a user