2013-04-26 55 views
4

我有以下問題:添加資源字符串到字符序列

我創建了一個字符序列,並且能夠命名4個單位。不過,我寧願使用XML文件中的字符串進行本地化。有什麼辦法可以實現嗎?

final CharSequence[] choices = 

     //want to add strings here i.e. R.strings.lemonade 
     {"Coke", "Pepsi" , "Sprite" , "Seven Up" }; 

builderType.setSingleChoiceItems(choices, selected, new OnClickListener() 
        {....... 

錯誤消息:

類型不匹配:不能從int轉換爲CharSequence的

回答

3

創建的strings.xml一個string-array

<string-array name="choices"> 
    <item>Coke</item> 
    <item>Pepsi</item> 
    <item>Sprite</item> 
    <item>Seven Up</item> 
</string-array> 

然後,從資源獲取它

String[] choices = context.getResources().getStringArray(R.array.choices); 

然後按原樣使用setSingleChoiceItems(),因爲String實現了CharSequence

7

還有另外一個AlertDialog.Builder.setSingleChoiceItems()超載,其中包含int資源ID,用於字符串數組。在res/values例如xml中輸入以下內容,例如: strings.xml

<string-array name="choices"> 
    <item>Coke</item> 
    <item>Pepsi</item> 
    <item>Sprite</item> 
    <item>Seven Up</item> 
</string-array> 

然後你可以使用它作爲:

builderType.setSingleChoiceItems(R.array.choices, selected, new OnClickListener(), ... 

對於一般情況下,你也可以用Resources.getStringArray()由@Egor的建議加載字符串數組資源。