0
我在解析Android應用程序的XML文件時遇到了一些問題。從xml解析android資源
我需要一些來自我的XML文件的佈局ID和顏色ID。我在讀取字符串值時沒有問題,但我不知道如何將XML佈局引用轉換爲佈局ID?謝謝你的幫助!!
我的XML文件看起來像這樣:
<program
name="ProgramName"
color="@color/white"
prefLayoutId="@layout/pref" />
我的解析代碼工作那樣。色彩的解析/佈局不工作:
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 I need something like COLOR.Black;
pi.color = Integer.valueOf(xmlParser.getAttributeValue(null, "color"));
// HERE I need something like R.layout.pref
pi.pref = Integer.valueOf(xmlParser.getAttributeValue(null, "prefLayoutId"));
result.add(pi);
}
break;
}
}
event = xmlParser.next();
謝謝你的回答。它說「無法解析getAttributeResourceValue(..)」。怎麼了? – EarlyEarl
將xmlParser變量類型從XmlPullParser替換爲XmlResourceParser – AterLux
那麼,存在的問題是我無法獲得AttributeValue「name」。最好使用AttributeSet Xml.asAttributeSet(xmlParser)?但是這兩種方式,您的代碼使用AttributeSet.getAttributeResourceValue不具有像R.layout.pref一樣的行爲。但是區別在哪裏。 – EarlyEarl