我有一个包含2个活动的Android应用程序 第一个(主要)活动:使用可用的XML文件下拉列表 第二个(列表)活动:在ListView / Listadapter中显示结果
应用程序运行正常,但是当我在第二个活动上使用“后退”按钮时,它完成应用程序并清除ArrayList(使用System.out测试)并选择另一个XML视图,显示旧的XML结果。
所以基本上看起来listview仍然在我的记忆中,我该如何清除/重置?
XMLParse parser = new XMLParse();
String xml = parser.getXmlFromUrl(URL); // getting XML
Document doc = parser.getDomElement(xml); // getting DOM element
//SOME CODE//
// Adding menuItems to ListView
adapter = new SimpleAdapter(this, menuItems,
R.layout.list_item,
new String[] { bestemming, vertrek, spoor, vertraging }, new int[] {
R.id.bestemming, R.id.vertrek, R.id.spoor, R.id.vertraging });
setListAdapter(adapter);
final Button button = (Button) findViewById(R.id.back);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
menuItems.clear();
finish();
}
});
答案 0 :(得分:0)
您是否尝试使用ArrayAdapter?
adapter = new ArrayAdapter ...
...
menuItems.clear();
adapter.clear();
...
或
listView.setAdapter(null);
答案 1 :(得分:0)
您必须通知适配器您已更改ArrayList,它将重绘它。有时它会在没有通知的情况下重绘,但有时会显示旧数据。
在你的主要活动中尝试使用类似的东西:
@Override
protected void onResume() {
super.onResume();
adapter.notifyDataSetChanged();
}