Android Studio如何实现消息列表的自动刷新

使用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 FIdList = new ArrayList<>();
            FIdList = Http_friendList.fetch(UserDataUtils.getUserid()); //获取当前用户的F_id
            List 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实现,但我是刚开始学的,也不知道还有什么方法了!谢谢大家!

您这里只调用了刷新的方法,没有把新的消息传递到你的recycleview里面去,你可以在friendAdapter中写一个方法,用于更新数据用的,然后在handler中调用friendAdapter的那个更新数据的方法把msg传进去,然后在friendAdapter中奖新的msg加载到指定的地方。最后调用刷新

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^