使用Android Studio实现通讯功能
在设计消息列表的时候,出现一个问题,不知道如何修改好。
一般的消息列表都会包含与当前用户的最新一条聊天记录。
消息列表使用recycleview显示,想使用handler+adapter.notifyDataSetChanged来实现刷新最新的一条聊天记录,但是一直不成功!
Handler HANDLER=new Handler((Message msg) -> {
switch (msg.what){
case 1:
friendAdapter.notifyDataSetChanged();
if(refreshlayouttop!=null)
refreshlayouttop.finishRefresh(0);//停止刷新动画
if(refreshlayoutbootom!=null)
refreshlayoutbootom.finishLoadMore(0);//停止刷新动画
break;
default:;
}
return true;
});
private void loadFrined(boolean clear){
new Thread(()->{
List<Integer> FIdList = new ArrayList<>();
FIdList = Http_friendList.fetch(UserDataUtils.getUserid()); //获取当前用户的F_id
List<Friend> tempFriends = new ArrayList<>(); //记录当前用户每一个好友的信息(type frindid remake
if(FIdList!=null&&FIdList.size()>0){
for(int i=0;i<FIdList.size();i++){
System.out.println("fetche user frined "+FIdList.get(i));
if(checkExist(FIdList.get(i))==false) {
Friend friend = loadingFriend(FIdList.get(i)); //获取该好友的数据
if (friend != null) tempFriends.add(friend);
}
}
}
for(Friend friend:tempFriends){
friendlistData.add(friend);
}
Message message = new Message();
message.what=1;
HANDLER.sendMessage(message);
}).start();
}
我主要想知道如何修改原有的数据源(friendlistData列表中某一个项的信息,如最新的一条消息记录),可以使得页面自动刷新,显示新的数据。
网上信息真的太少了!不一定要用notifyDataSetChanged实现,但我是刚开始学的,也不知道还有什么方法了!谢谢大家!