package com.example.newapplication.homeFragment
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import android.provider.ContactsContract
import android.util.Log
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 androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.newapplication.R
import com.example.newapplication.adapter.TaskAdapter
import com.example.newapplication.databinding.FragmentListBinding
import com.example.newapplication.databinding.FragmentLoginBinding
import com.example.newapplication.entity.Task
import com.example.newapplication.taskActivity.DiedaoActivity
import com.example.newapplication.taskActivity.TaskActivity
import com.example.personalwork.utils.ApiClient
import com.example.personalwork.utils.ApiClient.gson
import com.google.gson.Gson
import kotlinx.coroutines.launch
import org.json.JSONObject
class ListFragment : Fragment() {
var _binding : FragmentListBinding? = null
val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentListBinding.inflate(inflater,container,false)
init()
return binding.root
}
fun init(){
listPage()
val tabHost = binding.tabhost
tabHost.setup()
// 将选项卡与布局中的LinearLayout关联
tabHost.addTab(tabHost.newTabSpec("tab01").setIndicator("所有").setContent(R.id.tab01))
tabHost.addTab(tabHost.newTabSpec("tab02").setIndicator("我的").setContent(R.id.tab02))
tabHost.setOnTabChangedListener {
val tabId = tabHost.currentTabTag
when (tabId) {
"tab01" -> {
listPage()
}
"tab02" -> {
listPage2()
}
}
}
}
fun listPage() {
val recyclerView: RecyclerView = binding.recyclerView
val taskList = mutableListOf<Task>()
lifecycleScope.launch {
try {
val listResponse = ApiClient.apiService.listPage()
val resultList = listResponse.body()?.data
if (listResponse.isSuccessful) {
if (resultList != null) {
for(i in 0 until resultList.size){
val task = resultList[i]
Log.d(i.toString(),task.toString())
if(task.state == 0){
taskList.add(task)
}
//如果检测到到有人摔倒,那么直接打开页面
if(task.name == "跌倒" && task.state == 0){
val intent = Intent(context, DiedaoActivity::class.java).apply {
putExtra("task",task)
}
startActivity(intent)
}
}
}
val layoutManager = LinearLayoutManager(requireContext())
recyclerView.layoutManager = layoutManager
val adapter = TaskAdapter(taskList)
recyclerView.adapter = adapter
} else {
Toast.makeText(requireContext(), "查找失败", Toast.LENGTH_SHORT).show()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
fun listPage2() {
val sharedPreferences: SharedPreferences = requireContext().getSharedPreferences("User", Context.MODE_PRIVATE)
val recyclerView2: RecyclerView = binding.recyclerView2
val taskList = mutableListOf<Task>()
lifecycleScope.launch {
try {
val listResponse = ApiClient.apiService.listPage()
val resultList = listResponse.body()?.data
if (listResponse.isSuccessful) {
if (resultList != null) {
for(i in 0 until resultList.size){
val task = resultList[i]
if(task.state == 0 && task.sentid == sharedPreferences.getInt("userId",0)){
taskList.add(task)
}
}
}
val layoutManager = LinearLayoutManager(requireContext())
recyclerView2.layoutManager = layoutManager
val adapter = TaskAdapter(taskList)
recyclerView2.adapter = adapter
} else {
Toast.makeText(requireContext(), "查找失败", Toast.LENGTH_SHORT).show()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
override fun onDestroy() {
super.onDestroy()
_binding = null
}
}
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.example.newapplication.R
import com.example.newapplication.entity.Op
class ListAdapter (private val context: Context, private val opList: List<Op>) :
RecyclerView.Adapter<ListAdapter.OpViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): OpViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_list, parent, false)
return OpViewHolder(view)
}
override fun onBindViewHolder(holder: OpViewHolder, position: Int) {
val op = opList[position]
holder.icon.setImageResource(IconMapper.getIconResource(op.icon)) // 设置图标
holder.name.text = op.name
holder.itemView.setOnClickListener {
val intent = Intent(context, op.cla)
context.startActivity(intent)
}
}
override fun getItemCount(): Int {
return opList.size
}
inner class OpViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val icon: ImageView = itemView.findViewById(R.id.op_icon)
val name: TextView = itemView.findViewById(R.id.op_name)
}
}
package com.example.newapplication.homeFragment
import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableStringBuilder
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.newapplication.R
import com.example.newapplication.databinding.FragmentAddBinding
import com.example.newapplication.entity.Task
import com.example.personalwork.utils.ApiClient
import kotlinx.coroutines.launch
class AddFragment : Fragment() {
var _binding : FragmentAddBinding? = null
val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentAddBinding.inflate(inflater,container,false)
init()
return binding.root
}
fun init(){
val btn = binding.btnRight
btn.setOnClickListener{
addTask()
}
}
fun addTask(){
val sharedPreferences: SharedPreferences = requireContext().getSharedPreferences("User", Context.MODE_PRIVATE)
var title = binding.maintitle.text.toString()
var text = binding.maintext.text.toString()
var tips1 = binding.tips1.text.toString()
var tips2 = binding.tips2.text.toString()
var tips3 = binding.tips3.text.toString()
var position = binding.posText.text.toString()
val task = Task()
task.sentid = sharedPreferences.getInt("userId",1);
task.name = title
task.description = text
task.tip1 = tips1
task.tip2 = tips2
task.tip3 = tips3
task.position = position
lifecycleScope.launch {
try {
val addResponse = ApiClient.apiService.addtask(task)
if(addResponse.code() == 200){
binding.maintitle.text = SpannableStringBuilder("")
binding.maintext.text = SpannableStringBuilder("")
binding.tips1.text = SpannableStringBuilder("")
binding.tips2.text = SpannableStringBuilder("")
binding.tips3.text = SpannableStringBuilder("")
binding.posText.text = SpannableStringBuilder("")
Toast.makeText(requireContext(),"添加成功",Toast.LENGTH_SHORT).show()
}else{
Toast.makeText(requireContext(),"添加失败",Toast.LENGTH_SHORT).show()
}
}catch (e:Exception){
Toast.makeText(requireContext(),"发送请求失败",Toast.LENGTH_SHORT).show()
e.printStackTrace()
}
}
}
override fun onDestroy() {
super.onDestroy()
_binding = null
}
}