Java Android:嵌套if语句在语句之间跳转
在我的Android应用程序中,我尝试使用以下代码使用XMLPullParser读取xml文件:Java Android:嵌套if语句在语句之间跳转,java,android,eclipse,Java,Android,Eclipse,在我的Android应用程序中,我尝试使用以下代码使用XMLPullParser读取xml文件: while (eventType != XmlPullParser.END_DOCUMENT) { if (eventType == XmlPullParser.START_TAG) { s = xpp.getName();
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==statetTitle)
,返回false
。它应该跳转到eventType==xpp.next()代码>而是转到listAdapter.add(con)代码>嵌套在不同的if语句中。其他一些if语句也会出现这种情况
说到编程,我会说我不是初学者,但我似乎不知道这个问题是从哪里来的
谢谢没有魔法。
如果在调试时看到控制流按照您描述的方式运行,那么您正在执行的代码可能与源代码不匹配。尝试执行清理和完全重建。当我遇到条件问题时,我通常会记录我正在测试的值。我以前尝试过清理它。请原谅我的无知,因为我不习惯eclipse,但是正在清理它,然后再次运行它吗?是的。应该已经将代码与源代码同步了。如果您没有尝试,请尝试“全部清除”以强制完成重建。不仅仅是一个干净的项目。您还可以关闭自动生成并手动进行生成。很抱歉,回复延迟,我们已经有一段时间没能处理这个问题了。我尝试了一个干净的所有,也卸载了它从手机上,但我仍然得到的问题。此外,对于行“if(xpp.getText().equalsIgnoreCase(“容器”)”),即使xpp.getText()是title,它也会返回true。