Kotlin / Java / Android中有没有一种方法可以动态获取列表并根据Intent Extra显示它

问题描述

我正在尝试构建一个体育应用,并且创建了我的活动和片段。 目前,我正在使用String Resources文件中的String Array来获取团队名称列表,当您单击该团队时,我将启动另一个活动来向您显示团队信息。我目前正在努力获取时间表显示。我真的很想通过基于用户从列表中选择的团队获取团队的信息来动态地做到这一点。另外,我想尝试从免费的WebAPI中获取信息,然后处理api,并在选中后在“团队计划”选项卡中显示团队计划。

这是我的团队计划片段,我只是再次从字符串资源中获取了团队名称列表,因为我想确保活动/片段已启动

    package com.adonaubauer.myapplicationone.ui.main

    import android.os.Bundle
    import android.widget.ArrayAdapter
    import androidx.fragment.app.ListFragment
    import com.adonaubauer.myapplicationone.R

    class NflTeamScheduleFragment : ListFragment() {

        var mNum = 0

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            mNum = arguments?.getInt("num") ?: 1
            val layout = R.layout.nfl_team_schedule_layout

            // Need to get all the schedules for the teams so it changes for each team
            // Need to change the names of Oakland Raiders -> Las Vegas Raiders
            // Need to change the name of Washington Redskins -> Washington Football Team

            when (activity?.intent?.extras?.get("Team Name")) {
                "Arizona Cardinals" -> listadapter = activity?.let { ArrayAdapter<String> (it,layout,resources.getStringArray(R.array.nfl_team_names)) }
                "Atlanta Falcons" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Baltimore Ravens" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "buffalo Bills" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Carolina Panthers" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Chicago Bears" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Cleveland browns" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Dallas Cowboys" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Denver broncos" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Detroit Lions" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Green Bay Packers" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Houston Texans" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Indianapolis Colts" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Jacksonville Jaguars" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Kansas City Chiefs" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Los Angeles Chargers" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Los Angeles Rams" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Miami Dolphins" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Minnesota Vikings" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "New England Patriots" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "New Orleans Saints" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "New York Giants" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "New York Jets" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Oakland Raiders" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Philadelphia Eagles" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Pittsburgh Steelers" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "San Francisco 49ers" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Seattle Seahawks" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Tampa Bay Buccaneers" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Tennessee Titans" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }
                "Washington Redskins" -> listadapter = activity?.let { ArrayAdapter<String> (it,resources.getStringArray(R.array.nfl_team_names)) }

            }

        //listadapter = activity?.let { ArrayAdapter<String> (it,// resources.getStringArray(R.array.nfl_team_names)) }

        }

        companion object {
           /**
            *
            * The newInstance method will create new NflTeamsFragment objects and
            * return them with arguments
            *
            * @param num
            * @return
            */
            @JvmStatic
            fun newInstance(num: Int): NflTeamScheduleFragment {

                val nflTeamScheduleFragment = NflTeamScheduleFragment()
                val args = Bundle()
                args.putInt("num",num)
                nflTeamScheduleFragment.arguments = args
                return nflTeamScheduleFragment

            }

        }

    }

因此,假设在While循环的第一行,团队是Arizona Cardinals,我想在“团队时间表”标签显示其时间表的列表。现在,我相信我可以创建一个字符串数组,并拥有每个游戏的字符串项并以这种方式显示它。但是我想尝试使用WebAPI动态地进行操作,因此不必在资源文件的字符串数组中键入每个团队的日程安排。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)