Android:排序微调器条目(通过XML字符串数组提供)
我对安卓相当陌生,所以如果我没有使用正确的“术语”,请原谅我 我一直在研究微调器,发现有两种方法可以添加条目:Android:排序微调器条目(通过XML字符串数组提供),android,sorting,Android,Sorting,我对安卓相当陌生,所以如果我没有使用正确的“术语”,请原谅我 我一直在研究微调器,发现有两种方法可以添加条目: 在我的活动的.java文件中,使用StringAdapters等 在xml中,使用“android:entries”属性和strings.xml文件中定义的字符串数组 我尝试了第一个选项,并能够对微调器选项进行排序(我检索了字符串数组,将其放入ArrayList,然后使用集合。排序…可能不是最简单的解决方案),但我对使用第二个选项更感兴趣,因为我已经定义了所有字符串,看起来这会让我的代
<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>
仰泳100
蝴蝶50
蝴蝶100
@弦乐/比赛(蝴蝶100)
@弦乐/仰泳比赛100
@弦乐/比赛(蝴蝶50)
并将android:entries=“@array/competities”
放入我的xml微调器定义中
现在我的问题:参赛作品的添加顺序与比赛定义中出现的顺序相同。我知道我可以手动对它们进行排序,但如果我的应用程序以不同的语言运行(我想顺序会保持不变),这就行不通了有没有办法直接在xml中对字符串进行排序?根据需要为需要新排序顺序的翻译定义不同版本的
资源,以影响排序顺序。这样,如果您翻译
资源,那么您也“翻译”了
排序顺序。那么您的意思是在我的意大利语文件:values it\strings.xml中,我需要用相同的名称重新定义?哦,这似乎是相当多的开销。。。如果我在英语中添加了一个新字符串,却忘了将其添加到意大利语版本,该怎么办?它会丢失还是会被放在末尾?@PLB:“那么,你的意思是在我的意大利语文件:values it\strings.xml中,我需要用相同的名称重新定义吗?”--是的,但前提是排序顺序不同。列表越长,排序顺序越有可能随翻译而改变。“哦,这似乎是相当高的开销”——是的。中间立场是不要使用android:entries
,自己加载
(getResources().getStringArray()
或getResources().getTextArray()
),用Java对其排序,并将其与ArrayAdapter
一起使用。