azure011328

导航

 

第二阶段主要进行测试,查漏补缺和对增加的新功能的修改

主页面功能实现的代码

package com.example.newapplication.homeFragment

import android.content.Intent
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.core.view.size
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.widget.ViewPager2
import com.example.newapplication.R
import com.example.newapplication.adapter.AdAdapter
import com.example.newapplication.adapter.NewsAdapter
import com.example.newapplication.adapter.TaskAdapter
import com.example.newapplication.databinding.FragmentHomeBinding
import com.example.newapplication.entity.AdItem
import com.example.newapplication.entity.News
import com.example.newapplication.entity.Task
import com.example.newapplication.taskActivity.DiedaoActivity
import com.example.personalwork.utils.ApiClient
import kotlinx.coroutines.launch


class HomeFragment : Fragment() {
    private var _binding: FragmentHomeBinding? = null
    private val binding get() = _binding!!

    private lateinit var viewPager: ViewPager2
    private lateinit var adAdapter: AdAdapter

    private val adList = listOf(
        AdItem("社区公告", R.drawable.img_1),
        AdItem("急救知识", R.drawable.img),
        AdItem("安全常识", R.drawable.img_2)
    )

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        _binding = FragmentHomeBinding.inflate(inflater, container, false)
        val view = binding.root
        listPage()

        val handler = Handler(Looper.getMainLooper())
        val updateAdTask = object : Runnable {
            override fun run() {
                val currentItem = viewPager.currentItem
                viewPager.setCurrentItem((currentItem + 1) % adList.size, true)
                handler.postDelayed(this, 5000) // 5秒后再次执行
            }
        }
        // 开始定时任务
        handler.postDelayed(updateAdTask, 5000)


        viewPager = view.findViewById(R.id.viewPager)
        adAdapter = AdAdapter(adList)
        viewPager.adapter = adAdapter



        return view
    }

    fun listPage(){
        val recyclerView = binding.listItem
        val newsList = mutableListOf<News>()
        lifecycleScope.launch {
            val listResponse = ApiClient.apiService.getNews()
            val resultList = listResponse.body()?.data
            if(listResponse.isSuccessful && resultList!=null){
                for(i in 0 until 5){
                    val news = resultList.get(i);
                    newsList.add(news)
                }
            }else {
                Toast.makeText(requireContext(), "查找失败", Toast.LENGTH_SHORT).show()
            }
            val layoutManager = LinearLayoutManager(requireContext())
            recyclerView.layoutManager = layoutManager
            val adapter = NewsAdapter(newsList)
            recyclerView.adapter = adapter
        }
    }

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

 

 

posted on 2024-06-14 10:57  淮竹i  阅读(27)  评论(0)    收藏  举报