Список от модели Kotlin не аккуратно оформлен - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь получить список из изменяемого списка и разобрать его, чтобы массив стал вращающимся массивом, вот мой код;

fun getListLeague(context: Context): MutableList<League> {
        val league: MutableList<League> = mutableListOf()
        val leagueName = context.resources.getStringArray(R.array.leagueName)
        val leagueId = context.resources.getStringArray(R.array.leagueId)

        league.clear()

        for (i in leagueName.indices) {
            league.add(League(leagueName[i], leagueId[i]))
        }

        return league
    }

Затем я называю это фрагментом в моем счетчике, вот код;

private lateinit var leagues: List<League>

    leagues = getListLeague(requireContext())
    val spinAdapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, leagues)

    Log.e("LIST LEAGUE PREV", leagues.toString())

Я пытаюсь увидеть список из журнала выше, и я ожидаю, что результат будет как ниже;

E/LIST LEAGUE PREV: English Premier League, English League Championship, Scottish Premier League, German Bundesliga, Italian Serie A, French Ligue 1, Spanish La Liga, so on :)

Затем я пытаюсь запустить приложение, но результат журнала выглядит так:

E/LIST LEAGUE PREV: [League(leagueName=English Premier League, leagueId=4328), League(leagueName=English League Championship, leagueId=4329), League(leagueName=Scottish Premier League, leagueId=4330), League(leagueName=German Bundesliga, leagueId=4331), League(leagueName=Italian Serie A, leagueId=4332), League(leagueName=French Ligue 1, leagueId=4334), League(leagueName=Spanish La Liga, leagueId=4335), League(leagueName=Greek Superleague Greece, leagueId=4336), League(leagueName=Dutch Eredivisie, leagueId=4337), League(leagueName=Belgian Jupiler League, leagueId=4338), League(leagueName=Turkish Super Lig, leagueId=4339), League(leagueName=Danish Superliga, leagueId=4340), League(leagueName=Portuguese Primeira Liga, leagueId=4344), League(leagueName=American Major League Soccer, leagueId=4346), League(leagueName=Swedish Allsvenskan, leagueId=4347), League(leagueName=Mexican Primera League, leagueId=4350), League(leagueName=Brazilian Brasileirao, leagueId=4351), League(leagueName=Ukrainian Premier League, leagueId=4354), League(leagueName=Russian Football Premier League, leagueId=4355), League(leagueName=Australian A-League, leagueId=4356), League(leagueName=Eliteserien, leagueId=4358), League(leagueName=Chinese Super League, leagueId=4359)]

Результат превзошел все мои ожидания, так где я ошибся?

1 Ответ

0 голосов
/ 02 ноября 2018

Вы получаете как leagueID, так и leagueName в своем getListLeague

val leagueId = context.resources.getStringArray(R.array.leagueId)

league.add(League(leagueName[i], leagueId[i]))

И вы возвращаете оба атрибута,

return league

Вот почему вы получаете leagueID в своем Журнале.

Во-вторых, вы называете это

leagues = getListLeague(requireContext())
Log.e("LIST LEAGUE PREV", leagues.toString())

так что вы получите свой результат как

League(leagueName=English Premier League

Я предлагаю сначала понять, что вы делаете, прежде чем вносить изменения в свои коды.

...