【发布时间】:2014-10-01 18:33:08
【问题描述】:
我正在使用 XMLPullParser 解析 XML 提要,然后将传入的数据存储在列表中。 问题是,我有多个提要从一个列表中提取数据,
我正在做的是,
我创建了一个 Arraylist 来存储从 XML 中提取的数据,
protected ArrayList<String> feed_XMLs = new ArrayList<String>();
由于我有多个提要,我将它们存储在一个数组中
public static String XML_URL[] = { "http://Feed1",
"http://Feed2",
"http://Feed3",
};
然后我在 AsyncTask 中使用 PullParser 从每个 URL 中提取数据并创建其对象,
for (int x = 0; x < XML_URL.length; x++){
GetXMLTitles xmlFirst = new GetXMLTitles(x);
xmlFirst.execute();
}
我在 AsyncTask 类中创建了一个构造函数来在每次迭代时选择不同的 URL -> new GetXMLTitles(x)
在每次迭代中,都会选择一个 URL,然后提取标题并将其存储在 ArrayList feed_XMLs 中。
稍后在 AsyncTask 的 onPostExecute 方法中,此数据现在传递给 ArrayAdapter,
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, feed_XMLs);
setListAdapter(adapter);
就是这样。
最终输出是一个巨大的 ArrayList feed_XMLs,包含数百个标题。
在每次迭代中,都会选择新的 URL,feed_XMLs ArrayList 会更新并显示在屏幕上。
例如,
在第一次迭代时,第一个 URL 被选中,所有标题都存储在 feed_XMLs 中,feed_XMLs 被更改。这些标题显示在屏幕上。
在第二次迭代时,第二个 URL 被选中,所有标题都附加在 feed_XMLs...中,并且每次迭代的过程都是连续的。
问题是,
每次迭代时,滚动条都会在屏幕顶部移动,
例如,
如果我一直向下滚动并且 ArrayAdapter 被更新,我会自动在屏幕上一直向上移动,这不是我想要的。
我希望我的屏幕在 ArrayAdapter 中更新新数据时保持在原来的位置。
我怎样才能做到这一点?有可能吗?
我试过了,scrollview.fullScroll(View.FOCUS_DOWN);,但这也不起作用。
是否有办法更新 ArrayAdapter 使其对滚动没有影响??
【问题讨论】:
标签: java android arraylist android-asynctask