gpt4 book ai didi

android - 使用 HashMap 映射 String 和 int

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:47 25 4
gpt4 key购买 nike

我有一个显示国家名称的 ListView。我已将名称存储在 strings.xml 中,作为一个名为 country_names 的字符串数组。

在填充 ListView 时,我使用了一个从 strings.xml 读取的 ArrayAdapter:

String[] countryNames = getResources().getStringArray(R.array.country_names);
ArrayAdapter<String> countryAdapter = new ArrayAdapter<String>(this, R.layout.checked_list, countryNames);
myList.setAdapter(countryAdapter);

现在我还有每个国家的国家代码。当在 ListView 上单击特定国家/地区名称时,我需要 Toast 相应的国家/地区代码。

我知道实现 HashMap 是最好的技术。据我所知,HashMap 是使用 put() 函数填充的。

myMap.put("Country",28);

现在我的问题是:

  1. 是否可以读取 string.xml 数组并使用它来填充 map ?我的意思是,我想向 Map 添加项目,但我必须能够通过从另一个数组读取项目来实现。我该怎么做?

    我问的基本原因是因为我想将国家名称和代码保存在更容易添加/删除/修改它们的地方。

  2. 字符串数组存储在 strings.xml 中。类似的整数数组必须存储在哪里?在值文件夹中,但在任何特定的 XML 文件下?

最佳答案

  1. 作为一种可能性,您可以在 XML 中存储 2 个不同的数组:字符串数组和整数数组,然后以编程方式将它们放入 HashMap

    数组的定义:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <string-array name="countries_names">
    <item>USA</item>
    <item>Russia</item>
    </string-array>

    <integer-array name="countries_codes">
    <item>1</item>
    <item>7</item>
    </integer-array>
    </resources>

    和代码:

    String[] countriesNames = getResources().getStringArray(R.array.countries_names);
    int[] countriesCodes = getResources().getIntArray(R.array.countries_codes);

    HashMap<String, Integer> myMap = new HashMap<String, Integer>();
    for (int i = 0; i < countriesNames.length; i++) {
    myMap.put(countriesNames[i], countriesCodes[i]);
    }
  2. 可以是任意名称的文件。 See this

关于android - 使用 HashMap 映射 String 和 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3922406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com