2012-12-16 24 views
2

好吧,我想使用一個佈局並使用strings.xml以編程方式更改我的字符串。在Eclipse中使用一個佈局並以編程方式更改字符串

我有40個問題,總是4個答案(它們是靜態的)。

所以我的想法是這樣的:

while i < 40: 
set question to question[i] 
on answer click: i++ 

我怎樣才能動態地獲取字符串。我總是使用getResources().getText(R.string.example)

可我只是這樣做:

String dynamic = "R.string.example" + i; 
getResources().getText(dynamic) 

回答

2

也許如果你想,你可以保存答案,並在strings.xml中陣列中的問題(或其他地方),或者一些更陣列。所以你可以像使用getResources()一樣加載數組,然後使用getStringArray 如果你有一個數組,你可以動態地獲得正確的答案/問題或者你想要做的任何事情。

在strings.xml中(或另一個XML):

<string-array name="months_array"> 
    <item>Jan</item> 
    <item>Feb</item> 
    <item>Mar</item> 
    <item>Apr</item> 
    <item>May</item> 
    <item>Jun</item> 
    <item>Jul</item> 
    <item>Aug</item> 
    <item>Sep</item> 
    <item>Oct</item> 
    <item>Nov</item> 
    <item>Dec</item> 
</string-array> 

在您的代碼:

String[] months = getResources().getStringArray(R.string.months_array); 

這是你想要的嗎?

+0

謝謝,這似乎正是我所期待的。 – Lotzki

1

好吧,我想使用一個佈局,並使用strings.xml以編程方式更改字符串 。

如果你根本不需要任何動畫,那就是要走的路。

可我只是這樣做:

字符串動態= 「R.string.example」 +我; 。

getResources()的getText(動態)

使用Resources.getIdentifier()方法:

int textId = getResources().getIdentifier("example" + i, "string", getPackageName()); 
getResources().getText(textId); 

但是,正如ndsmyter已經說過,你可能想看看有所有的問題和答案5個不同的數組(1個用於問題文本,4個用於4個答案)。然後,您只需在啓動時加載該陣列一次,然後使用i即可一次性獲取5個陣列中的所有數據。

相關問題