我的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;
}
答案 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