问题描述
||
我是Android的新手,但是经验丰富的PHP开发人员,因此我知道一些在PHP中使用的概念,但我在Android开发人员中苦苦挣扎。
我正在尝试使用字符串数组定义一个文本模式,可以将其与另一个字符串数组中的随机值交换出去。
我知道如何从字符串数组中随机选择一个项目,所以那里没有问题。但这是我想做的:
<resources>
<string-array name=\"myPattern\">
<item>myValues1</item>
<item>myValues1 of myValues2</item>
</string-array>
<string-array name=\"myValues1\">
<item>string a</item>
<item>string b</item>
<item>string c</item>
<item>string d</item>
</string-array>
<string-array name=\"myValues2\">
<item>string 1</item>
<item>string 2</item>
<item>string 3</item>
<item>string 4</item>
</string-array>
</resources>
我代码中的逻辑是从模式数组中随机选择一个字符串。然后,用字符串数组myValues1中的随机值交换该字符串中\“ myValues1 \”的任何实例,并用myValues2数组中的随机项交换\“ myValues2 \”。
Android中的数组是否有可能,还是我应该使用一些代码来创建结构?
提前致谢。
解决方法
这对您有用吗?
class <yourActivity> extends Activity{
private final Random rand = new Random();
private String getRandom(int resourceId){
String [] vals = getResources().getStringArray(resourceId);
return vals[rand.nextInt(vals.length - 1)];
}
//your method somewhere...
void someMethod(){
swapOutMyValues1(getRandom(R.array.myValues1));
swapOutMyValues2(getRandom(R.array.myValues2));
}
}
,基于开发指南中的此页面,您应该能够像这样访问代码中的String数组:
Resources res = getResources();
String[] myValues1 = res.getStringArray(R.array.myValues1);
您将要在代码中执行此操作,因为您在XML文件中定义的资源将由编写的应用程序使用,因此,想法是您将编写代码以某种方式进行更改。