0

我有一个带有 2 个活动的 Android 应用程序第一个(主要)活动:带有可用 XML 文件的下拉列表第二个(列表)活动:在 ListView / Listadapter 中显示结果

该应用程序工作正常,但是当我在第二个活动上使用“后退”按钮时,它会完成应用程序并清除 ArrayList(使用 System.out 测试)并选择另一个 XML 视图,显示旧的 XML 结果。

所以基本上它看起来像列表视图仍然出现在我的记忆中,我该如何清除/重置它?

        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();
        }
    });
4

2 回答 2

0

你用 ArrayAdapter 试过了吗?

adapter = new ArrayAdapter ...
...
menuItems.clear();
adapter.clear();
...

或者

listView.setAdapter(null);
于 2012-05-29T03:23:20.783 回答
0

您必须通知适配器您已更改 ArrayList 并且它将重绘它。有时它会在没有通知的情况下重绘,但有时会显示旧数据。

在您的主要活动中尝试使用类似的东西:

@Override
protected void onResume() {
    super.onResume();

    adapter.notifyDataSetChanged();
}
于 2012-05-29T14:07:24.247 回答