0

2つのアクティビティを持つAndroidアプリケーションがあります最初の(メイン)アクティビティ:利用可能なXMLファイルのドロップダウン2番目の(リスト)アクティビティ:結果をListView/Listadapterに表示します

アプリケーションは正常に動作しますが、2番目のアクティビティで[戻る]ボタンを使用すると、アプリケーションが終了し、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

ArrayList を変更したことをアダプタに通知する必要があり、これを再描画します。通知なしに再描画されることもありますが、古いデータが表示されることもあります。

主なアクティビティでは、次のようなものを使用してみてください。

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

    adapter.notifyDataSetChanged();
}
于 2012-05-29T14:07:24.247 に答える
0

ArrayAdapter で試しましたか?

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

また

listView.setAdapter(null);
于 2012-05-29T03:23:20.783 に答える