联系人和会话界面使用的是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(四) - 联系人和会话的更多相关文章

  1. 即时聊天APP(一)

    最新写了一个即时聊天的安卓Demo,是基于Bmob后端开发的app,由于Bmob有较大局限性,因此,我并没有按照开发文档来进行开发,只是简单写了一个基本的文字聊天,以后有时间我会自己写一个带服务端的即 ...

  2. 即时聊天APP(五) - 聊天界面

    设置界面没什么好说的,无非也就是加了个对话框来二次提醒用户,现在来讲讲聊天界面. 聊天界面初始化时会得到一个参数,就是对方的id,并设置在标题栏的位置,此界面也是使用RecyclerView来展示聊天 ...

  3. 即时聊天APP(二) - MainActivity

    主活动包含三个Fragment,分别是会话.联系人和设置,初始布局隐藏所有碎片,然后把应该显示的显示出来: //隐藏所有Fragment private void hideAll(){ Fragmen ...

  4. 即时聊天APP(六) - 消息的接收以及EventBus使用

    通常我们在接收消息的时候会有声音和震动的提示,因此我也加了代码达到这样的效果,这就要用到EventBus了,当然这里我也用到了自定义的广播,所以首先在Mainfests文件中加入以下代码: <r ...

  5. 即时聊天APP(三) - 注册和登陆

    注册和登陆大多都是一些用户名和密码的验证,所以放在一起写,注册代码: String account = accountEdit.getText().toString().trim(); String ...

  6. 43.Odoo产品分析 (四) – 工具板块(11) – 网站即时聊天(1)

    查看Odoo产品分析系列--目录 在线聊天可以实现与顾客的在线实时交流,比如在"商店"功能中实现顾客对客服的商品咨询等类似的操作.  安装"网站即时聊天"模块: ...

  7. 开发一款即时通讯App,从这几步开始

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云视频发表于云+社区专栏 关注公众号"腾讯云视频",一键获取 技术干货 | 优惠活动 | 视频方案 " ...

  8. Node.js + Web Socket 打造即时聊天程序嗨聊

    前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前 ...

  9. 即时聊天IM之三 XMPP协议客户端库的和Android端框架概述

    合肥程序员群:49313181.    合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q  Q:408365330     E-Mail:egojit@qq.com smack ...

随机推荐

  1. 面试java后端面经_3

    小姐姐说:你一点都不懂表达,一点都不懂爱情,一点也不爱我! 你答:你知道吗,我听说过一个这样的故事,讲的就是有一个小女孩和一个男孩在一起,小男孩呢很不幸是位聋哑人,虽然如此,但是他们的日子过得特别的美 ...

  2. Linux云计算高端架构师+DevOps高级虚拟化高级进阶视频

    课程大纲 1.开班典礼(1)_rec.mp4 2.开班典礼(2)_rec.mp4 3.开班典礼(3)_rec.flv 4.Linux操作系统系统安装及启动流程(1)_rec.flv 5.Linux操作 ...

  3. docker安装到基本使用

    记录docker概念,安装及入门日常使用 Docker安装(Linux / Debian) 查看官方文档,在Debian上安装Docker,其他平台在这里查阅,以下均在root用户下操作,省去sudo ...

  4. Oracle笔记_基础

    1 登录启动 sqlplus / as sysdba #以管理员方式登录 sqlplus 用户名/密码 #本地登录 sqlplus 用户名/密码@//主机IP/实例名(默认orcl) #远程登录 sq ...

  5. pip3 Traceback (most recent call last)错误调试

    百度找的答案不知道是否正确反正不适用于deepin,就手动调试了一下,结果修复了原理不清楚. 调试环境: OS:deepin 15.11 Python3-pip 错误提示: python@python ...

  6. CodeForces 909E

    题意略. 思路:一个拓扑排序的题目吧.肯定是要先处理后面那个任务,再处理前面那个任务,我的思路是尽力先把主处理器能操作的先操作完,然后再把副处理器能操作完的再操作完,这样循环,直到处理完全部. 定义t ...

  7. Java多线程之守护线程

    Java多线程之守护线程 一.前言 Java线程有两类: 用户线程:运行在前台,执行具体的任务,程序的主线程,连接网络的子线程等都是用户线程 守护线程:运行在后台,为其他前台线程服务 特点:一旦所有用 ...

  8. switch语句(下)(转载)

    之前我们介绍了在switch语句中使用整数类型和枚举类型的情况.这一部分继续介绍使用string类型的情况.string类型是switch语句接受的唯一一种引用类型参数. 下面来看一段C#代码. 代码 ...

  9. Socket I/O模型之select模型

    socket网络编程中有多种常见的I/O模型: 1.blocking阻塞 2.nonblocking非阻塞 3.I/O multiplexing复用 4.signal driven 5.asynchr ...

  10. crontab使用方法

    一.crontab基本用法 1.1 cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start //启动服务 service ...