java - Parsing android resources from xml -
i facing problems parsing xml-file android app.
i need layout ids , color ids xml file. have no problems in reading string values dont know how convert xml layout reference layout id? help!!
my xml file looks that:
<program name="programname" color="@color/white" preflayoutid="@layout/pref" />
my parsing code works that. parsing of color/layout not work:
xmlpullparser xmlparser = getresources().getxml(r.xml.programlist); int event = xmlparser.geteventtype(); while (event != xmlpullparser.end_document) { string name = xmlparser.getname(); switch (event) { case xmlpullparser.start_tag: { break; } case xmlpullparser.end_tag: { if(name.equals("program")) { programinfo pi = new programinfo(); pi.name = xmlparser.getattributevalue(null, "name"); // here need color.black; pi.color = integer.valueof(xmlparser.getattributevalue(null, "color")); // here need r.layout.pref pi.pref = integer.valueof(xmlparser.getattributevalue(null, "preflayoutid")); result.add(pi); } break; } } event = xmlparser.next();
try this:
resources resources = getresources(); xmlresourceparser xmlparser = resources.getxml(r.xml.programlist); ... int resourceid = xmlparser.getattributeresourcevalue(null, "color", 0); pi.color = (resorceid == 0) ? some_default_color : resources.getcolor(resourceid); pi.pref = xmlparser.getattributeresourcevalue(null, "preflayoutid", 0);
getattributeresourcevalue return referenced resource id, stored in corresponding value.
Comments
Post a Comment