2013-05-08 33 views
1

我正在为我的程序开发一个好友列表。我现在所拥有的服务器发送给我的所有用户都是ListView。我显示姓名和联系地址。我还需要显示用户是实时在线还是离线。更改Android中联系人应用的好友状态

当我第一次填充ListView时,我有一个ArrayList与所有用户及其状态,所以我可以显示他们的所有信息。我的问题出现在用户上下线时。他们仍然在名单上,但他们的地位必须改变。

我一直在寻找网络上的解决方案。我发现我应该先清除ArrayList,然后使ListView无效重绘,然后向ArrayList添加新数据,然后通知我的适配器再次用adapter.notifyDataSetChanged()填充ListView

我认为这可能是一个缓慢的解决方案,因为我可以有1000个联系人,他们可以频繁更改状态。

有没有其他的解决方案呢?

在此先感谢。

回答

0

我有一个ArrayList<Contact>其中Contact是一个自定义类,它具有联系私人参数(名称,URI和状态)。当用户更改其状态时,我会在数组中搜索并更改其状态。

然后,我将新的ArrayList<Contact>传递给我的自定义BaseAdapter,然后执行adapter.notifyDataSetChanged()。首先不需要使ListView无效。