我有一个常见的用例,用户从中选择一个项目(例如,在微调器或自动完成列表中),然后输入数据。例如,假设用户选择一个国家/地区。最终,我想要的数据是国家代码,而不是国家/地区名称;但是用户希望根据名称而不是代码进行选择。换句话说,用户将选择“美国”,但我最终希望将其转换为“美国”。
有很多国家。有没有一种简单的方法可以在Android中设置映射以从名称到代码进行哈希?我想到了一些解决方案,在我看来它们都不是很令人满意:
包含国家/代码的数据库,我可以查询。
在strings.xml
中将所有国家/地区设置为字符串,然后按名称检索资源。
在代码中创建一个巨大的Map并使用它。 (这是最不满意的答案)。
任何人都有更聪明的解决方案吗?
答案 0 :(得分:1)
我通常使用strings.xml
中声明的2个并行字符串数组:
<string-array name="country_codes">
<item>us</item>
<item>uk</item>
<!-- ... -->
</string-array>
然后做
String[] countryCodes = getResources().getStringArray(R.array.country_codes);
答案 1 :(得分:0)
如何将它作为自定义XML文件存储在/ res / xml中,当您的应用程序启动并加载到Map中时,您将读入该文件?
简单的事情:
<Map>
<item key="us" value="United States">
...
</Map>