2015-06-19 71 views
-2

我使用一个随机数字从资源xml中拉出一个字符串,所有这些都有一个类似的开始(它们被命名为“quote”后面有一个数字,所以quote1,quote2,等在getString()中使用变量

我试图找到一种方法使用getResources().getString()访问他们,但我不知道怎么打发,由于getString想要的int,我不能这样做

String quoteToGet="R.string.quote"+String.valueOf(randNum) 
//randNum is the random int generated 

因为quoteToGet是一个字符串,getString(quoteToGet)不起作用。

我还能做些什么来实现这一目标?

+1

是否quote1,quote2也有类似的数据?如果是这样的话,最好使用strings.xml中的字符串数组资源。那么检索数据很容易。 –

+4

又一个从名字得到res ID ...使用GOOGLE ...是的,仍然4k3R的提示是更好的解决方案 – Selvin

+0

你最好使用**字符串**资源 –

回答

0

使用此方法,您应该通过名称获取资源。

private String getResStringId(String aString) { 
     String packageName = getPackageName(); 
     int resId = getResources().getIdentifier(aString, "string", packageName); 
     return getString(resId); 
    } 

使用类似以下内容:

String quoteToGet= getResStringId("quote"+String.valueOf(randNum)); 
+1

我只是喜欢声誉的农民......它只是一个复制从http://stackoverflow.com/questions/7493287/android-how-do-i-get-string-from-resources-using-its-name#answer-11595723 – Selvin

+1

哦,我很抱歉,我用这个至少一年前的应用程序的方法,是的,我可能在那个问题上找到了stackoverflow方法。我不试图通过其他答案的残酷复制/粘贴来提高我的声望。 – MikeKeepsOnShine

+0

您需要将原始答案的答案添加到归属中。 –