azure011328

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
统计
 

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

主页面功能实现的代码

复制代码
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   淮竹i  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
 
点击右上角即可分享
微信分享提示