我對Android非常陌生,因此如果我不使用正確的「術語」,請原諒我。Android:對微調條目進行排序(通過XML字符串數組進行排序)
我一直在看紡紗,並發現有兩種方法來添加條目:
-
在我活動的java文件
- ,使用StringAdapters等
- 在XML ,使用「機器人:條目」屬性,並且在的strings.xml文件
我嘗試的第一個選項,並能夠微調器選項排序定義的字符串陣列(I檢索到的字符串數組,把它放到一個ArrayList中然後使用Collections.sort ...可能不是最簡單的解決方案),但我會對使用第二個選項感興趣,因爲我已經定義了所有的字符串,它似乎會讓我的代碼更輕......再加上,我想知道是否有oding我想要做的一種方式...... 我現在有的strings.xml是這樣的:
<resources>
<string name="competition_backstroke100">Backstroke 100</string>
<string name="competition_butterfly50">Butterfly 50</string>
<string name="competition_butterfly100">Butterfly 100</string>
<string-array name="competitions">
<item>@string/competition_butterfly100</item>
<item>@string/competition_backstroke100</item>
<item>@string/competition_butterfly50</item>
</string-array>
</resources>
,並把android:entries="@array/competitions"
在我的xml微調框定義
現在我的問題:條目是按照他們在比賽中出現的相同順序添加的定義。我知道我可以手動對它們進行排序,但如果我的應用程序以不同的語言運行,則這不起作用(我猜測順序會保持不變)。 有什麼辦法可以直接在xml中排序我的字符串嗎?
所以你的意思是在我的意大利文件中:values-it \ strings.xml,我需要重新定義具有相同名稱的?哦,這似乎有相當的開銷...如果我添加一個新的英文字符串,並忘記將其添加到意大利語版本?它會丟失還是會放在最後? –
PLB
@PLB:「所以你的意思是在我的意大利文件中:values-it \ strings.xml,我需要用相同的名稱重新定義?」 - 是的,但只有排序順序不同。列表越長,排序順序就越有可能隨着翻譯而改變。 「哦,這似乎有一些開銷」 - 是的。中間的基礎是*不使用'android:entries',自己加載'''('getResources()。getStringArray()'或'getResources()。getTextArray()'),將它排序Java,並通過'ArrayAdapter'使用它。 –
CommonsWare