2
所以我试图做的是循环通过我下面显示的XML文件并将内容保存到每个“屏幕”的对象。通过循环遍历XML构建一个对象
我的XML如下:
<?xml version="1.0" encoding="utf-8"?>
<screens>
<screen id="house" backdropimage = "R.drawable.scene">
<region id="one" rleft = "200" rright = "200" rtop = "10" rbottom = "10"/>
<region id="two" rleft = "220" rright = "220" rtop = "12" rbottom = "12"/>
<paths left = "park" right = "x" top = "x" bottom = "x"/>
</screen>
<screen id="park" backdropimage = "R.drawable.park">
<region id="1" rleft = "500" rright = "200" rtop = "10" rbottom = "10"/>
<paths right = "house" left = "x" top = "x" bottom = "x"/>
</screen>
</screens>
这样的想法是,我在阵列屏幕的在每个屏幕块的信息创建一个对象。身份证和背景都很好,但即使在“区域”部分迭代也存在问题,因为在不同部分会有不同数量的区域条目。这是即时通讯使用的代码,由于某种原因,它通过“一”“两”和“1”,我希望它停在/屏幕上。
depth = parser.getDepth();
while(parser.getDepth() == depth) {
if(event==XmlPullParser.START_TAG && parser.getName().contentEquals("region")) {
Region reg = new Region(parser.getAttributeIntValue(null, "rleft", 0),
parser.getAttributeIntValue(null, "rtop", 0),
parser.getAttributeIntValue(null, "rright", 0),
parser.getAttributeIntValue(null, "rbottom", 0));
//String str = parser.getIdAttribute();
newScreen.area = (reg);
//Rect temp = reg.getBounds();
newScreen.areaArray.add(reg);
parser.next();
}
这是我第一次使用的Java/Android的XML文件的尝试,我还是蛮新到Java总体上,所以我敢肯定,我没有使用最好的方法在这里和将不胜感激任何帮助。谢谢
非常欣赏这种信息,原来我的代码是工作我如何预期它我只是读输出不正确。 – Be77amy
@tdtje:优秀的答案btw。 –
@tdtje我一直在android中解析xml,很高兴我偶然发现了这篇文章。这个库似乎比使用pull解析器好得多。除非解析速度太慢,否则我会切换到这种方法。谢谢。 –