getResourceEntryName for an array item

北战南征 提交于 2019-12-02 20:10:22

问题


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.


回答1:


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)



回答2:


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!