我想将适配器设置为 ListView,其中 ListView 的项目是字典。出于本地化目的,我希望这些项目在“值”文件夹下的 xml 中定义。
目前,我使用带有字符串的简单列表,其中数组在 \values\arrays.xml 中定义
但我不想使用列表中所选项目的索引 - 如果我有时更改项目的顺序,我必须更改依赖于此隐式索引的所有代码。使用定义的密钥会容易得多。
我怎么能这样做?
我想将适配器设置为 ListView,其中 ListView 的项目是字典。出于本地化目的,我希望这些项目在“值”文件夹下的 xml 中定义。
目前,我使用带有字符串的简单列表,其中数组在 \values\arrays.xml 中定义
但我不想使用列表中所选项目的索引 - 如果我有时更改项目的顺序,我必须更改依赖于此隐式索引的所有代码。使用定义的密钥会容易得多。
我怎么能这样做?
我不会使用字典。它已经过时了。我认为您最好使用ArrayList
of customObject
或 a HashMap
。然后你可以Object
从你的Adapter
:
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//adapter.getItem(position); - this is how you can acces the object
//connected to the selected item from the list
//Then you can easily access an id of this object (or from HashMap)
}
});
编辑:如果您想在 xml 中有一个列表,您可以随时将一个抽象 xml 文件添加到您的资源中。这些也可以本地化。它会是这样的:
<my_word>
<id>123</id>
<word>My word</word>
</my_word>
但它会涉及 XML 解析,所以它不一定是更容易的解决方案。