有没有办法在XML资源中定义自定义标记

时间:2012-04-18 13:38:20

标签: android xml

我想在项目res文件夹中定义类似的内容:

<custommap name="MyMap">
    <entry key="@string/key1" value="1">K1</entry >
    <entry key="@string/key2" value="2">K2</entry >
    <entry key="@string/key3" value="3">K3</entry >
    <entry key="@string/key4" value="4">K4</entry >
</custommap>

有可能吗?上面的例子没有通过编译(我试图将它插入arrays.xml)。 如果可能的话,如何从java代码中访问它?

1 个答案:

答案 0 :(得分:2)

  1. 右键单击res文件夹并创建自己的xml文件 在/ xml文件夹下创建一个新文件。

  2. 将您的xml读入ArrayList 通过查找XML标记,使用XMLParser:

    public ArrayList<textElement> PrepareListFromXml(String cat)
    {
        textElement te;
    
        ArrayList<textElement> listItems = new ArrayList<textElement>();
        XmlResourceParser listXml = getResources().getXml(R.xml.<your resource name>);
    
        int eventType = -1;
        while (eventType != XmlResourceParser.END_DOCUMENT)
        {
            if (eventType == XmlResourceParser.START_TAG)
            {                
                String strNode = listXml.getName();
                if (strNode.equals("entry"))
                {
                    te.setText(listXml.getAttributeValue(null, "key"));
                    listItems.add(te);
                }
            }
    
            try
            {
                 eventType = listXml.next();
            }
            catch (XmlPullParserException e)
            {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }
            catch (IOException e)
            {
                   // TODO Auto-generated catch block
                    e.printStackTrace();
            }
        }
    
        return listItems;
    }