From 255b76c1bd3d1591b663b5c8326840b87e6b74ca Mon Sep 17 00:00:00 2001 From: zhangsan <646228430@qq.com> Date: Fri, 26 Apr 2024 19:57:44 +0800 Subject: [PATCH] second_submit --- .idea/deploymentTargetDropDown.xml | 17 + app/src/main/AndroidManifest.xml | 11 +- .../com/zjgsu/jianshu/Activity/BookIntro.kt | 8 +- .../jianshu/Activity/BookShelfActivity.kt | 1 + .../Activity/Book_informationActivity.kt | 24 +- .../jianshu/Activity/GoodBookActivity.kt | 4 + .../zjgsu/jianshu/Activity/HotBookActivity.kt | 77 ++++ .../jianshu/Activity/LiteratureActivity.kt | 111 +++++ .../zjgsu/jianshu/Activity/MainActivity.kt | 382 ++++++------------ .../jianshu/Activity/ManagementActivity.kt | 109 +++++ .../com/zjgsu/jianshu/Activity/MyActivity.kt | 1 + .../jianshu/Activity/PerceptionActivity.kt | 1 + .../Perception_informationActivity.kt | 8 +- .../jianshu/Activity/PhilosophyActivity.kt | 110 +++++ .../jianshu/Activity/PsychologyActivity.kt | 109 +++++ .../zjgsu/jianshu/Activity/ScienceActivity.kt | 110 +++++ .../zjgsu/jianshu/Activity/WenXueActivity.kt | 141 ------- .../Activity/author_introductionActivity.kt | 10 +- .../zjgsu/jianshu/Activity/guanliActivity.kt | 139 ------- .../zjgsu/jianshu/Activity/kexueActivity.kt | 141 ------- .../Activity/sendPerceptionActivity.kt | 8 +- .../zjgsu/jianshu/Activity/xinliActivity.kt | 138 ------- .../zjgsu/jianshu/Activity/zhexueActivity.kt | 141 ------- .../zjgsu/jianshu/Adapter/BillboardAdapter.kt | 84 ++++ .../com/zjgsu/jianshu/Adapter/BookAdapter.kt | 39 +- .../com/zjgsu/jianshu/Adapter/BookAdapter2.kt | 58 +-- .../zjgsu/jianshu/Adapter/BookRankAdapter.kt | 64 +++ .../jianshu/Adapter/PerceptionAdapter.kt | 8 +- .../java/com/zjgsu/jianshu/Bmob/Book_bmob.kt | 4 - .../com/zjgsu/jianshu/Bmob/Book_inf_bmob.kt | 3 +- .../main/java/com/zjgsu/jianshu/Book_rank.kt | 9 + app/src/main/res/drawable/addbook.png | Bin 0 -> 701 bytes app/src/main/res/drawable/alreadyin.png | Bin 0 -> 681 bytes app/src/main/res/drawable/fail_load.png | Bin 0 -> 5087 bytes app/src/main/res/drawable/loading.png | Bin 0 -> 3785 bytes app/src/main/res/drawable/pre_load.png | Bin 0 -> 3182 bytes app/src/main/res/layout/activity_bookrank.xml | 67 +++ .../main/res/layout/activity_bookshelf.xml | 203 ++-------- .../main/res/layout/activity_categorypage.xml | 91 +++++ app/src/main/res/layout/activity_guanli.xml | 77 ---- app/src/main/res/layout/activity_kexue.xml | 77 ---- app/src/main/res/layout/activity_main.xml | 128 +++--- .../main/res/layout/activity_perception.xml | 42 +- app/src/main/res/layout/activity_wenxue.xml | 77 ---- app/src/main/res/layout/activity_xinli.xml | 77 ---- app/src/main/res/layout/activity_zhexue.xml | 77 ---- app/src/main/res/layout/book_item.xml | 4 +- app/src/main/res/layout/book_rank2_item.xml | 115 ++++++ app/src/main/res/layout/book_rank_item.xml | 174 ++++++++ app/src/main/res/layout/item_book.xml | 36 ++ .../res/layout/layout_bottom_navigation.xml | 14 +- app/src/main/res/menu/nav_menu.xml | 12 +- 52 files changed, 1620 insertions(+), 1721 deletions(-) create mode 100644 .idea/deploymentTargetDropDown.xml create mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/GoodBookActivity.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/HotBookActivity.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/LiteratureActivity.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/ManagementActivity.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/PhilosophyActivity.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/PsychologyActivity.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/ScienceActivity.kt delete mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/WenXueActivity.kt delete mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/guanliActivity.kt delete mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/kexueActivity.kt delete mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/xinliActivity.kt delete mode 100644 app/src/main/java/com/zjgsu/jianshu/Activity/zhexueActivity.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Adapter/BillboardAdapter.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Adapter/BookRankAdapter.kt create mode 100644 app/src/main/java/com/zjgsu/jianshu/Book_rank.kt create mode 100644 app/src/main/res/drawable/addbook.png create mode 100644 app/src/main/res/drawable/alreadyin.png create mode 100644 app/src/main/res/drawable/fail_load.png create mode 100644 app/src/main/res/drawable/loading.png create mode 100644 app/src/main/res/drawable/pre_load.png create mode 100644 app/src/main/res/layout/activity_bookrank.xml create mode 100644 app/src/main/res/layout/activity_categorypage.xml delete mode 100644 app/src/main/res/layout/activity_guanli.xml delete mode 100644 app/src/main/res/layout/activity_kexue.xml delete mode 100644 app/src/main/res/layout/activity_wenxue.xml delete mode 100644 app/src/main/res/layout/activity_xinli.xml delete mode 100644 app/src/main/res/layout/activity_zhexue.xml create mode 100644 app/src/main/res/layout/book_rank2_item.xml create mode 100644 app/src/main/res/layout/book_rank_item.xml create mode 100644 app/src/main/res/layout/item_book.xml 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 0000000000000000000000000000000000000000..bab35ad31bb3d64ed5310dfd1a8121619835b330 GIT binary patch literal 701 zcmV;u0z&Px%cS%G+RCr$PTWxZJFc5v=BzThQFA&vw&6y~!4ABG}CfKP*b9A-U$1rfqEu_DBh z7;A#l5JkVsbeJx2I~gCKSF#h##3NL$@J8Din=G!<_Y&KiWUlt_E7NV6p~2+^s^o|Q zLA4{&Kc&Zqm>BUro{W+KJ|GMlfQsq`UI6?cL8fzZHZTSYfF^bCR1!0qU4S_ElZ6lz z69&luQ{hHg4`i)+xdwv)Fgb}>w?Srrp>mCv0Q&%Tg2Ueh%00f1^1RDYxKTPA-8LAY zII|Hk#s~nV=-9$~pXZxP0d;%;gsDtd%U~6yAVLOTKL6L&_o{3*J_hI|Et^R`&ujX( zX8eGpgRDR zEbCoy77~Cy0+L(!yhV&~0EDZFJ`2TKxJ8%F&C6#39l^MD`b00000NkvXXu0mjf@oFzM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/alreadyin.png b/app/src/main/res/drawable/alreadyin.png new file mode 100644 index 0000000000000000000000000000000000000000..62976dbee6ea52ea7ead3dec18e036140485b952 GIT binary patch literal 681 zcmV;a0#^NrP)Px%V@X6oRCr$PSX)-ZAP|MF#ID4;llH4*6}77%{j#pax)QsRpyMH)h#?G*2qcr= zkPP?EohN52fB4GrGa`T#uyO_{1XeBpN`e#u6ap(}fI?v90-!2DA+XdCkWxN0O>=kQ zTbu#_IOqJ0G4{Y1yD6m(Q$#F^01f_Q=ygrN)ux2S5MX%z2d`3UyLbg?@GoDI-x;31 z3Ly?td0-I=XxkQI-Wxm+Q#}C|@HZjEldA$$Pe3gAstHH|zFGp>wuOYZHza-+LToXz zAD*c$2c!gFodTqkd(Js{fA|D>zW+fr3b29Ko!-q?`c)AirQGTM{ufTA)Kk+m!QiV1 zfjPk!Pr%&ZizeVdzIBM%xg(s48H1!?|P#xkwK1Xa$V4op+sq zohv6FGHhcl=luD2Jf402g*}T>z~yo|DW#sxpQe;#%uJ63J9Z950DNc}K3FR6q#AB~ z$v_hTKej0WNa(um6|;pMyI?Nx=o~P-v?c*2G1$5epP=NJ6MPT>@R6C`}1Boz%*i8MZ207OD>5TYqJp08?|`zyF!@Babm26$u4PM zfgvSI0lvv`u9+SK)OIEr0Xi?h#^z*6j^~kW4)piYGkq}xI4Z=Sd*%ioRRyM4pGuDX zcO`(IjR042ECu}R1b_jv|78B%7pwlDv`QE~J1Qte0eS^$Pd|#9LobOgqpu P00000NkvXXu0mjfj`1f| literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b7c3153655ec46941d92b82e42508b36c3b05b11 GIT binary patch literal 5087 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 NIAv;UQf}mR^FJ2nOEdrg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/loading.png b/app/src/main/res/drawable/loading.png new file mode 100644 index 0000000000000000000000000000000000000000..3dcd484110a7bab1d79d5a7a6f8946a8c34a1e39 GIT binary patch literal 3785 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 + + + + + + + + + + + + + + + + + + + + + + + + + + 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" />