I have a string array in strings.xml as detailed below:
<string-array name="spinerArray">
<item name="one">First</item>
<item name="two">Second</item>
<item name="three">Third</item>
<item name="four">Fourth</item>
</string-array>
And I need to retrieve one of the items name not the value (one, two, three, four). So far, I know it's possible to get the name of the array using getResourceEntryName like:
getResources().getResourceEntryName(R.array.spinerArray);
Is there a way to get an item name?
Thanks.
As this is an xml, you will need a xml parser. Then you can get the values of name using
attributes.getValue("name");
Or
name = ((Element) your_node).getAttribute("name"));
using DOM parser (org.w3c.dom)
Another solution:
Resources res = getResources();
TypedArray entriesTypedArray = res.obtainTypedArray(R.array.spinerArray);
ArrayList entriesName = new ArrayList();
TypedValue v1 = new TypedValue();
for (int i1=0; i1<entriesTypedArray.length(); i1++) {
entriesTypedArray.getValue(i1, v1);
String name1 = res.getResourceEntryName(v1.resourceId);
entriesName.add(name1);
}
来源:https://stackoverflow.com/questions/18339652/getresourceentryname-for-an-array-item