【即时聊天APP - 联系人和会话】一身转战三千里,一剑曾当百万师。这篇文章主要讲述即时聊天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 - 注册和登陆
- 即时聊天APP - 聊天界面
- android Binder机制原理
- Appium 并发多进程基于 Pytest框架
- 小米MlX2 Android安装google play谷歌服务4套件
- MapperScan的工作,Spring-Mybatis怎么自动getMapper
- android发送post请求
- android开发(多页面的实现 | Fragment的创建与使用)
- Android Intent通讯实例