2024/4/22

fragment:

package com.example.personalwork.fragment.bottom

import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle
import android.view.*
import androidx.fragment.app.Fragment
import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.example.personalwork.R
import com.example.personalwork.data.models.Record
import com.example.personalwork.data.models.Week
import com.example.personalwork.data.models.WeekData
import com.example.personalwork.databinding.FragmentChatBinding
import com.example.personalwork.utils.ApiClient
import kotlinx.coroutines.launch

class ChatFragment : Fragment() {
var _binding: FragmentChatBinding? = null;
val binding get() = _binding!!

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentChatBinding.inflate(inflater,container,false)
setHasOptionsMenu(true)
init()
return binding.root
}

fun init(){
val btnAdd = binding.floatingAddBtn
btnAdd.setOnClickListener {
findNavController().navigate(R.id.action_chatFragment_to_add2Fragment)
}
}

override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.chat_fragment_menu,menu)
}

override fun onOptionsItemSelected(item: MenuItem): Boolean{
when(item.itemId){
R.id.menu_build -> findNavController().navigate(R.id.action_chatFragment_to_upgrament2Fragment)
}
return super.onOptionsItemSelected(item)
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
fetchData(requireContext())
}
private fun fetchData(context: Context) {
val week = readUserDataFromSharedPreferences1(context)
lifecycleScope.launch {
try {
val listFromWeek = ApiClient.apiService.fetchDateFromWeek(week)
val result = listFromWeek.body()
val res = result?.code
val data = result?.data
if(res == 200){
Toast.makeText(requireContext(),"查找成功", Toast.LENGTH_SHORT).show()
if (data != null) {
updateUI(data.week)
saveResultToSharedPreferences(data,requireContext())
}
}else{
Toast.makeText(requireContext(),"查找失败", Toast.LENGTH_SHORT).show()
}
}catch (e:Exception){
e.printStackTrace()
}
}
}

private fun updateUI(week: Week) {
binding.textView.text = week.title
binding.textStart.text = week.starttime
binding.textFinal.text =week.finaltime
binding.textAming.text =week.aming.toString()
binding.editTextTextMultiLine.text =week.description
}

fun saveResultToSharedPreferences(result: WeekData, context: Context){
val sharedPreferences: SharedPreferences = context.getSharedPreferences("Week",Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.putInt("id",result.week.id)
editor.putInt("userId",result.week.userid)
editor.putString("title",result.week.title)
editor.putString("description",result.week.description)
editor.putString("startTime",result.week.starttime)
editor.putString("finalTime",result.week.finaltime)
editor.putInt("aming",result.week.aming)
editor.putInt("accomplish",result.week.accomplish)
editor.apply()
}

fun readUserDataFromSharedPreferences1(context: Context): Week {
val sharedPreferences: SharedPreferences = context.getSharedPreferences("User", Context.MODE_PRIVATE)
val userId = sharedPreferences.getInt("userId", 0)
return Week(0,userId)
}

override fun onDestroy() {
super.onDestroy()
_binding=null;
}
}

package com.example.personalwork.fragment.bottom

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.StaggeredGridLayoutManager
import com.example.personalwork.SharedViewModel
import com.example.personalwork.data.viewmodel.DaySumViewModel
import com.example.personalwork.databinding.FragmentContactBinding
import com.example.personalwork.fragment.bottom.adapter.ContactAdapter


class ContactFragment : Fragment() {

private val mDayViewModel: DaySumViewModel by viewModels()
private val mSharedViewModel: SharedViewModel by viewModels()

var _binding: FragmentContactBinding? = null
val binding get() = _binding!!

private val adapter: ContactAdapter by lazy { ContactAdapter() }

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentContactBinding.inflate(inflater,container,false);
binding.lifecycleOwner = this
binding.mSharedViewModel = mSharedViewModel

//SetUp RecyclerView
setupRecyclerview()

//Observe LiveData
mDayViewModel.getAllData.observe(viewLifecycleOwner, Observer { data ->
mSharedViewModel.checkIfDatabaseEmpty(data)
adapter.setData(data)
})
return binding.root
}

private fun setupRecyclerview() {
val recyclerView = binding.recyclerView
recyclerView.adapter = adapter
recyclerView.layoutManager = StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL)
}



override fun onDestroy() {
super.onDestroy()
_binding = null;
}
}

package com.example.personalwork.fragment.bottom

import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.lifecycle.lifecycleScope
import com.example.personalwork.R
import com.example.personalwork.data.models.Week
import com.example.personalwork.databinding.FragmentDiscoverBinding
import com.example.personalwork.utils.ApiClient
import kotlinx.coroutines.launch

class DiscoverFragment : Fragment() {

var _binding: FragmentDiscoverBinding? = null
val binding get() = _binding!!

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentDiscoverBinding.inflate(inflater,container,false)

return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
fetchData(requireContext())
}

private fun fetchData(context: Context) {
val week = readUserDataFromSharedPreferences1(context)
lifecycleScope.launch {
try {
val listFromWeek = ApiClient.apiService.fetchDateFromWeek(week)
val result = listFromWeek.body()
val res = result?.code
val data = result?.data
if(res == 200){
Toast.makeText(requireContext(),"查找成功", Toast.LENGTH_SHORT).show()
if (data != null) {
updateUI(data.week)
}
}else{
Toast.makeText(requireContext(),"查找失败", Toast.LENGTH_SHORT).show()
}
}catch (e:Exception){
e.printStackTrace()
}
}
}

private fun updateUI(week: Week) {
val ratio = week.accomplish.toDouble() / week.aming.toDouble()
val percent = ratio * 100
binding.textView.text = week.title
binding.textStart.text = week.starttime
binding.textFinal.text =week.finaltime
binding.textAming.text = (percent.toString() + "%")
binding.editTextTextMultiLine.text =week.description
}

fun readUserDataFromSharedPreferences1(context: Context): Week {
val sharedPreferences: SharedPreferences = context.getSharedPreferences("User", Context.MODE_PRIVATE)
val userId = sharedPreferences.getInt("userId", 0)
return Week(0,userId)
}

override fun onDestroy() {
super.onDestroy()
_binding = null
}
}

package com.example.personalwork.fragment.bottom

import User
import android.os.Bundle
import android.view.*
import android.widget.Toast
import androidx.appcompat.widget.SearchView
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.personalwork.R
import com.example.personalwork.data.models.Param
import com.example.personalwork.data.models.Records
import com.example.personalwork.databinding.FragmentOneBinding
import com.example.personalwork.fragment.bottom.adapter.RecordsAdapter
import com.example.personalwork.fragment.bottom.adapter.UserAdapter
import com.example.personalwork.utils.ApiClient
import com.google.gson.Gson
import kotlinx.coroutines.launch
import org.json.JSONObject


class OneFragment : Fragment() {
var _binding: FragmentOneBinding? = null
val binding get() = _binding!!

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentOneBinding.inflate(inflater,container,false)

setHasOptionsMenu(true)
init()
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val param = Param()
searchFromListPageCC(param)
}
fun init(){
val text_input = binding.txtInput
val btn_search = binding.btnSearch
btn_search.setOnClickListener {
searchThroughDatabase(text_input.text.toString())
}
}

private fun searchThroughDatabase(query: String) {
if(query==""){
val param = Param()
searchFromListPageCC(param)
}else{
searchFromListpageCCC(query)
}
}


private fun searchFromListpageCCC(query: String) {
lifecycleScope.launch {
try {
val listPageCCC = ApiClient.apiService.pageUserCCC(query)
val result = listPageCCC.body()

if (result != null) {
val gson = Gson()
val jsonObject = JSONObject(result.string())
val dataArray = jsonObject.getJSONArray("data")
val userList = mutableListOf<User>()

for (i in 0 until dataArray.length()) {
val userJson = dataArray.getJSONObject(i).toString()
val user = gson.fromJson(userJson, User::class.java)
if(user.roleid == 0){
userList.add(user)
}
}
updateUI(userList)
} else {
Toast.makeText(requireContext(), "获取失败", Toast.LENGTH_SHORT).show()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}

private fun searchFromListPageCC(param: Param){
lifecycleScope.launch {
try {
val listPageCC = ApiClient.apiService.pageUserCC(param)
val result = listPageCC.body()
if(result != null){
val gson = Gson()
val jsonObject = JSONObject(result.string())
val dataArray = jsonObject.getJSONArray("data")
val userList = mutableListOf<User>()
for(i in 0 until dataArray.length()){
val userJson = dataArray.getJSONObject(i).toString()
val user = gson.fromJson(userJson,User::class.java)
if(user.roleid == 0){
userList.add(user)
}
}
updateUI(userList)
}else{
Toast.makeText(requireContext(),"获取失败", Toast.LENGTH_SHORT).show()
}
}catch (e:Exception){
e.printStackTrace()
}
}
}

fun updateUI(userList: List<User>){
val recyclerView: RecyclerView = requireView().findViewById(R.id.recyclerView)
if (recyclerView.adapter == null) {
recyclerView.layoutManager = LinearLayoutManager(requireContext())
recyclerView.adapter = UserAdapter(userList)
} else {
(recyclerView.adapter as UserAdapter).userList = userList
recyclerView.adapter?.notifyDataSetChanged()
}

}


override fun onDestroy() {
super.onDestroy()
_binding = null
}

}

package com.example.personalwork.fragment.bottom

import android.os.Bundle
import android.view.*
import android.widget.Toast
import android.widget.Toast.LENGTH_SHORT
import androidx.appcompat.widget.SearchView
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.personalwork.R
import com.example.personalwork.data.models.Param
import com.example.personalwork.data.models.Records
import com.example.personalwork.databinding.FragmentTwoBinding
import com.example.personalwork.fragment.bottom.adapter.RecordsAdapter
import com.example.personalwork.utils.ApiClient
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import kotlinx.coroutines.launch
import org.json.JSONObject

class TwoFragment : Fragment() {
private var _binding: FragmentTwoBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentTwoBinding.inflate(inflater, container, false)
setHasOptionsMenu(true)
init()
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val param = Param()
searchFromListPageCC(param)
}

fun init(){
val text_search = binding.editTextTextPersonName
val btn_search = binding.button3
btn_search.setOnClickListener {
System.out.println(text_search.text.toString())
searchThroughDatabase(text_search.text.toString())
}
}


private fun searchThroughDatabase(query: String) {
if(query ==""){
val param = Param()
searchFromListPageCC(param)
}else{
searchFromListpageCCC(query)
}
}

private fun searchFromListpageCCC(query: String) {
System.out.println(query)
lifecycleScope.launch {
try {
val listPageCCC = ApiClient.apiService.pageRecordCCC(query)
val result = listPageCCC.body()

if (result != null) {
val gson = Gson()
val jsonObject = JSONObject(result.string())
System.out.println(jsonObject)
System.out.println("------------------------------")
val dataArray = jsonObject.getJSONArray("data")
System.out.println(dataArray)
val recordsList = mutableListOf<Records>()

for (i in 0 until dataArray.length()) {
val recordJson = dataArray.getJSONObject(i).toString()
val record = gson.fromJson(recordJson, Records::class.java)
recordsList.add(record)
}
updateUI(recordsList)
} else {
Toast.makeText(requireContext(), "获取失败", LENGTH_SHORT).show()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}

private fun searchFromListPageCC(param: Param){
lifecycleScope.launch {
try {
val listPageCC = ApiClient.apiService.pageRecordCC(param)
val result = listPageCC.body()
if(result != null){
val gson = Gson()
val jsonObject = JSONObject(result.string())
val dataArray = jsonObject.getJSONArray("data")
val recordsList = mutableListOf<Records>()
for(i in 0 until dataArray.length()){
val recordJson = dataArray.getJSONObject(i).toString()
val record = gson.fromJson(recordJson,Records::class.java)
recordsList.add(record)
}
updateUI(recordsList)
}else{
Toast.makeText(requireContext(),"获取失败",LENGTH_SHORT).show()
}
}catch (e:Exception){
e.printStackTrace()
}
}
}

fun updateUI(recordList: List<Records>){
val recyclerView: RecyclerView = requireView().findViewById(R.id.recyclerView)
if (recyclerView.adapter == null) {
recyclerView.layoutManager = LinearLayoutManager(requireContext())
recyclerView.adapter = RecordsAdapter(recordList)
} else {
(recyclerView.adapter as RecordsAdapter).recordsList = recordList
recyclerView.adapter?.notifyDataSetChanged()
}

}


override fun onDestroy() {
super.onDestroy()
_binding = null
}
}

 

posted @ 2024-04-22 22:22  Hbro  阅读(11)  评论(0)    收藏  举报