Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android数组-使用字符串模式引用数组以供使用_Android - Fatal编程技术网

Android数组-使用字符串模式引用数组以供使用

Android数组-使用字符串模式引用数组以供使用,android,Android,我对Android非常陌生,但我是一个经验丰富的PHP开发人员,所以我知道如何在PHP中实现一些概念,我在Android开发中遇到了困难 我要做的是使用一个字符串数组来定义一个文本模式,我可以用另一个字符串数组中的随机值替换它 我知道如何从字符串数组中随机选择一个项,所以没有问题。但这就是我想做的: <resources> <string-array name="myPattern"> <item>myValues1</item

我对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中的数组可以这样做吗?或者我应该使用一些代码来创建结构吗

提前感谢。

基于《开发指南》中的内容,您应该能够访问代码中的字符串数组,如下所示:

Resources res = getResources();
String[] myValues1 = res.getStringArray(R.array.myValues1);

您希望在代码中执行此操作,因为您在XML文件中定义的资源将被您编写的应用程序使用,因此您可以编写代码以某种方式进行更改。

这对您有用吗

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));
     }
}