这是一个真正愚蠢的问题,但我无法让它发挥作用。我已经使用了搜索选项,但无法找到我的答案。
我想做以下几点:
在res / strings.xml中我有几个字符串
<string name="good0">blablabla</string>
<string name="good1">balablabla2</string>
etc
我希望在发生某些事情时随机显示这些字符串:
Toast.makeText(this,R.string.good+(Math.random()*10), Toast.LENGTH_LONG).show();
但这不起作用。
非常感谢你的帮助!
答案 0 :(得分:4)
使用String Array
。
在strings.xml
:
<resources>
<string-array name="messages">
<item>blablabla</item>
<item>blablabla</item>
</string-array>
</resources>
然后,在代码中你会有类似的东西:
String[] messages = getResources().getStringArray(R.array.messages);
Random r = new Random();
String message = messages[r.nextInt(messages.length)];
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
答案 1 :(得分:2)
你做不到。
您必须使用switch
阻止。
String myString;
switch(Math.random() * 10) {
case 0:
myString = getString(R.string.good1);
break;
}
Toast.makeText(this, myString, Toast.LENGTH_LONG).show();
答案 2 :(得分:2)
R.string.good
是int
,因为它指的是资源。此int标识XML文件中的字符串。 Android为其资源标识符提供getString()
。
Android Docs on String Resources
你必须以这种方式从资源文件中取出String,然后正常连接。
答案 3 :(得分:0)
如果您有多个字符串值或整数值,并且将它存储在单个字符串中,那么String Builder就是最好的 操作类型,例如,您有一个字符串数组 存储在单个字符串中然后显示此字符串然后使用它 方法。它将百分之百地工作,它太适合了 这类问题。**
String my_str=null;
StringBuilder bldr=new StringBuilder();
for(int j=0;j<5;j++)
bldr.append(phonearray[j]).append(",");
my_str=bldr.toString();
在这种情况下,我将手机数组分配给单个字符串和 然后我会显示它等...