有什么方法可以获取XMLPullParser函数的进度吗?

问题描述 投票:0回答:1

解析需要花费一些时间,所以我希望能够显示进度条。但是,我似乎找不到找到更新进度的方法。问题来自这样的事实,即似乎没有一种方法(至少据我所知)检测pullparser.next()将运行多少次。我尝试过在最初加载数据时添加并计算换行符,但也无法给出正确的结果。

int eventType = pullparser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
    if (eventType == XmlPullParser.START_TAG) {
        //Do stuff
    }
    eventType = pullparser.next();
    //Update progress by x%
}
java android progress xmlpullparser
1个回答
0
投票

目前,我已经设计了一种解决方法,如果有人偶然发现此线程,请放置在此处。只要您在原始XML字符串中保留换行符:如果您检查eventype是否为文本且为空白,并且仅增加计数器,则可以计算出进度。

private int incrementPullParser(int eventType, XmlPullParser xpp) throws XmlPullParserException, IOException {
            if (eventType == XmlPullParser.TEXT && xpp.isWhitespace()){
                //used for counting the progress
                currentLines++;
                publishProgress((double)(currentLines/maxLines)*100);
                return xpp.next();
            }
            return eventType;
        }
© www.soinside.com 2019 - 2024. All rights reserved.