2012-07-22 29 views
0

我想將適配器設置爲ListView的項目是Dictionary的ListView。 而爲了本地化的目的,我寧願項目是在「values」文件夾下面的xml中定義的。帶xml字典的ListView適配器

目前,我用一個簡單的列表處理字符串,數組在\值定義\ arrays.xml

但我不希望使用所選項目的索引列表 - 如果我有時更改項目的順序,我必須更改所有依賴於此隱式索引的代碼。使用定義的鍵會容易得多。

我該怎麼做?

回答

0

我不會使用字典。這是obsolete。我想你會更好地使用定製ObjectArrayListHashMap。然後,你可以從你的Adapter得到這個Object

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解析,所以它不一定更容易的解決方案。

+0

謝謝,那將是第一步。但我仍然需要將對象存儲在可本地化的XML中。 – 2012-07-22 21:09:16

+0

但是,爲什麼這是一個問題?通常你使用相同的名稱來存儲它們,一個自定義的'Object'可以通過名稱(R.string.my_word_in_bilion_languages)訪問它們,並且它們將被正確地本地化。 – 2012-07-22 21:15:08

+0

你是對的,但爲了簡單起見,我希望存儲列表作爲xml中的數組/字典而不是單個字符串。但你的方法是完全足夠的 – 2012-07-22 21:19:56