Android:嵌套if语句在语句之间跳转

时间:2011-01-22 20:50:33

标签: java android eclipse

在我的Android应用程序中,我尝试使用XMLPullParser使用以下代码读取xml文件:

while (eventType != XmlPullParser.END_DOCUMENT) 
                {
                    if (eventType == XmlPullParser.START_TAG) 
                    {
                        s = xpp.getName();
                        if (xpp.getName().equalsIgnoreCase("container"))
                        {
                            state = stateContainer;
                            con = new Container();
                            con.setId(xpp.getAttributeValue(0));
                            con.setParentId(xpp.getAttributeValue(1));
                            con.setRestricted(xpp.getAttributeValue(2));
                        }
                        else if (xpp.getName().equalsIgnoreCase("title")) 
                        {
                            state = stateTitle;
                        } 
                        else 
                        {
                            state = stateUnknown;
                        }
                    } 
                    else if (eventType == XmlPullParser.TEXT) 
                    {
                        s = xpp.getText();
                        if (state == stateTitle) 
                        {
                            con.setTitle(s);
                        }
                    } 
                    else if (eventType == XmlPullParser.END_TAG) 
                    {
                        s = xpp.getText();
                        if (xpp.getText().equalsIgnoreCase("container")) 
                        {
                            listAdapter.add(con);
                        }
                    }
                    eventType = xpp.next();
                }

然而,它似乎跳进了'listAdapter.add(con);'当其他if语句中没有其他if子句为真时。例如:

else if (eventType == XmlPullParser.TEXT)返回true。然后它会尝试返回if (state == stateTitle)的{​​{1}}。它应该跳转到false,而是转到eventType == xpp.next();,它嵌套在不同的if语句中。其他一些if语句也会发生这种情况。

我会说我在编程方面不是初学者,但我似乎无法解决这个问题的来源!

由于

1 个答案:

答案 0 :(得分:2)

没有魔力。

如果在调试时看到控制流的行为与您描述的一样,那么您执行的代码似乎与源不匹配。尝试进行干净和完全重建。