即时聊天APP - 联系人和会话

Posted Joker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即时聊天APP - 联系人和会话相关的知识,希望对你有一定的参考价值。

联系人和会话界面使用的是RecyclerView进行滑动显示,并将好友列表存储至数据库,以供下次登录时使用,RecyclerView在后面我会详细介绍,这里略过。

联系人初始化时读取数据库并展示:

//读取数据库中的好友列表
private void read__db() {
    ListlLi = LitePal.findAll(LList.class);
    for (int i=0 ; i<lLi.size(); i++){
        //加个异常
        try{
            LList lLis = new LList(lLi.get(i).getFriends());
            lList.add(lLis);     //读取并添加
        }catch (Exception e) {
            Log.e(TAG, "read__db: 空指针异常");
        }
    }
    // 当有新消息时,刷新ListView中的显示
    adapter.notifyItemInserted(lList.size() - 1);
}  

会话列表读取数据库中的列表并去重然后在展示出来(逻辑可能有点问题):

//读取数据库中的好友列表
public void read__db() {
llList.clear();
llList = LitePal.findAll(ConList.class);
}
//去重
public void delcom() {
Log.e(TAG, "delcom: 删除之前"+llList.size());
int i,j;
Collections.reverse(llList);
for (i=0; i<llList.size(); i++){
    for (j=i+1; j<llList.size(); j++){
        if(llList.get(i).getName().equals(llList.get(j).getName())){
            //有重复,需删除
            llList.remove(llList.get(j));
            Log.e(TAG, "delcom: 删除之后"+llList.size());
        }
    }
}
}
//赋值并显示
private void copyAndshow() {
lList.clear();
ConList lLis;
for (int i=0 ; i<llList.size(); i++){
    //     Toast.makeText(getActivity(),"长度:"+llList.size(),Toast.LENGTH_SHORT).show();
    //加个异常
    try{
        lLis = new ConList(llList.get(i).getName(),llList.get(i).getMessage());
        ad(lLis);
    }catch (Exception e) {
        Log.e(TAG, "read__db: 空指针异常");
    }
}
}

以上是关于即时聊天APP - 联系人和会话的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP微的H5聊天室即时通讯系统APP源码分享

即时聊天APP - 注册和登陆

即时聊天APP - 消息的接收以及EventBus使用

IM即时通信软件自我思考

即时聊天APP - 聊天界面

android:手搓一个即时消息聊天框(包含消息记录)