有偏好的Android bug?

时间:2013-07-10 22:21:00

标签: java android

所以我有一个使用各种货币符号的应用程序,您可以通过标准首选项视图选择您喜欢的任何一个,我注意到如果货币使用相同的符号,例如USD,AUD,SGD($)它将默认为列表中的最后一项。例如,从下面的列表中,如果我选择USD或AUD,当我再次点击时它将默认为SGD,但如果我选择说ZAR,MYR,EUR或GBP,它将坚持那个,因为值不重复。我在这里做错了什么,或者这是一个已知问题?

    <string-array name="currency">
    <item name="eur">EUR</item>
    <item name="gbp">GBP</item>
    <item name="jpy">JPY</item> 
    <item name="usd">USD</item>
    <item name="zar">ZAR</item> 
    <item name="myr">MYR</item>     
    <item name="cny">CNY</item> 
    <item name="aud">AUD</item> 
    <item name="sgd">SGD</item>                                                                                                                                                                         
</string-array>

<string-array name="currencyValues">
    <item name="eur">€</item>
    <item name="gbp">£</item>
    <item name="jpy">¥</item>
    <item name="usd">$</item>
    <item name="zar">R</item>   
    <item name="myr">MR</item>  
    <item name="cny">¥</item>   
    <item name="aud">$</item>   
    <item name="sgd">$</item>                                                                                                                                                                                                                                                                                                                                           
</string-array>

1 个答案:

答案 0 :(得分:0)

我不会把它称为bug,因为它没有说明重复值会发生什么。我之所以这么说是因为我们无法知道选择了哪个条目,因为只保存了实际值(特殊情况下为$)。

解决问题的一种方法是在值中使用货币名称(或每种货币的整数),并使用辅助函数将其解析为货币符号。另一个更快的黑客是保存货币名称和符号,如AUD$,只显示您想要使用它的最后一个字符。

但是,我的建议是使用货币名称以避免不同货币之间的混淆。例如维基百科说美元,新元和澳元有时分别缩写为美元,新元和澳元。