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