Android onResume更新列表适配器

时间:2012-01-25 04:05:00

标签: android android-activity onresume

我使用列表适配器显示不同的商店,当有人选择商店时,它会将他们带到一个新活动,在那里他们可以将商店添加到该屏幕上的收藏夹。

在调用finish();上有一个返回按钮,返回到带有列表视图的屏幕。

现在问题是列表视图没有更新(即没有显示商店已经添加到收藏夹中)。我试过这段代码,但没有运气:

@Override
public void onResume() {
    super.onResume();
    list.setAdapter(null);      
    updateMyList();
    adapter=new LazyAdapter(this, ((String[])names.toArray(new String[0])), 
        ((String[])status.toArray(new String[0])));
    list.setAdapter(adapter);
}

updateMyList()调用服务器API并更新名称和状态数组。

使用此代码,列表并未真正更新......

3 个答案:

答案 0 :(得分:31)

您应该只在onCreate()内设置适配器,在onResume()内,您只需使用新的数据集调用adapter.notifyDataSetChanged()。这将使用新的数据集刷新ListView。

答案 1 :(得分:4)

使用此代码:

myList.clear();
myList.add("your array list items");            
setListAdapter(adapter);
adapter.notifyDataSetChanged();

我认为这会对你有帮助。

...谢谢

答案 2 :(得分:0)

在将新视图添加到listView之前删除所有以前的视图

listView.removeAllViews(); 

然后使用新值添加适配器类。有一点可以确保在从第二个活动返回时更新您的值,并且此代码正在调用。