如何从没有直接id引用的Strings.xml获取字符串数组的id

时间:2014-06-09 08:41:55

标签: android android-listview arrays

我的android项目中有很多存储在Strings.xml文件中的数组。我想根据按钮点击从这些Arrays填充列表。取决于点击了哪个按钮,我需要填充不同的列表。因此,通过添加嵌套的if else结构,代码非常混乱。有没有办法从String Array中获取Strings.xml,我可以使用一种常用方法调用它。我为按钮标签和数组名称保留了相同的名称。请帮忙......`

目前的代码是

if(submit_button.getTag().toString.equalsIgnoreCase("vacation"){
return getResources().getStringArray(R.array.vacation);
}
else if(submit_button.getTag().toString.equalsIgnoreCase("summer"){
return getResources().getStringArray(R.array.summer);
}
else if(submit_button.getTag().toString.equalsIgnoreCase("monsoon"){
return getResources().getStringArray(R.array.monsoon);
}
else if(submit_button.getTag().toString.equalsIgnoreCase("automn"){
return getResources().getStringArray(R.array.automn);
}
else if(submit_button.getTag().toString.equalsIgnoreCase("rainy"){
return getResources().getStringArray(R.array.rainy);
}
else if(submit_button.getTag().toString.equalsIgnoreCase("humid"){
return getResources().getStringArray(R.array.humid);
}
else if(submit_button.getTag().toString.equalsIgnoreCase("sunny"){
return getResources().getStringArray(R.array.sunny);
}
else{
return null;
}

3 个答案:

答案 0 :(得分:3)

<string-array name="myarray">
    <item>value1</item>
    <item>value2</item>
    <item>value3</item>
    <item>value4</item>
</string-array>

在你的java代码中,

String[] MyArray = getResources().getStringArray(R.array.myarray);

我希望这就是你所需要的,如果不是,请告诉我。

答案 1 :(得分:0)

您使用此代码;

对于字符串:

public static int getImageResourceIDFromName(String tag,
            Context context) {

        int identifier = context.getResources().getIdentifier (tag,"string",context.getPackageName());
        return identifier;  
    }

对于数组:

public static int getImageResourceIDFromName(String tag,
            Context context) {

        int identifier = context.getResources().getIdentifier (tag,"array",context.getPackageName());
        return identifier;  
    }

您需要传递标识符的名称,然后它将返回该特定资源的ID,它将帮助您创建批量if else语句,

答案 2 :(得分:0)

使用此方法从数组名称中获取数组ID。

private int getArrayId(String arranameString) {

    int id = this.getResources().getIdentifier(arranameString, "array", this.getPackageName());

    return id;

} 

这将返回字符串数组的id