これからどうしようとしているのは、以下の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>
だから、アイデアは、私は各画面のブロック内の情報とスクリーンの私の配列内のオブジェクトを作成することです。 IDと背景はうまくいきますが、別のセクションに領域エントリの量が異なるため、 'region'パーツを反復する際に問題が発生しています。これは、現在のutを使用しているコードです。何らかの理由で、 'one' 'two'と '1'を通って/ screenで停止したいと思っています。
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 /アンドロイドでXMLファイルを使用してみましたのは初めてであり、私はので、私は最善の方法をここで使用していないと確信しているし、全体でJavaにまだかなり新しいですよ助けていただければ幸いです。ありがとう
非常にこの情報が、それは私のコードは、私はちょうど間違って出力を読んでいたし、私はそれを期待どのように働いていたが判明し感謝しています。 – Be77amy
@tdtje:優れた回答btw。 –
@tdtje私はすべての時間アンドロイドでxmlを解析すると私はこのポストにつまずいてうれしいです。このライブラリは、プルパーサーを使用するほうがはるかに優れているようです。遅すぎると解析しない限り、このメソッドに切り替える予定です。ありがとう。 –