下拉刷新加载聊天记录出现的问题以及解决方法

最近在写一个聊天的安卓app,用的开源框架是openfire,这个框架还是非常强大的.但是在处理下拉加载聊天记录的时候,还是出现了一些问题。

1,如果使用ASC排序,刷新之前会显示最久的那几条消息,刷新到最后才显示最新消息。使用DESC排序,那么刷新之前最新的聊天会显示在顶部,越往下刷新越会显示越久的消息。这两种方法始终达不到qq聊天的那种效果,后来查了很多资料,也尝试了很多方法,终于得到了解决。

private int chatPosition = 0;//聊天显示的位置
private int end = 5;//每页显示的聊天个数

/**
 * 设置聊天的Adapter
 */
private void setChatWindowAdapter() {
    String selection = ChatProvider.ChatConstants.JID + " = ?";
    String[] selectionArgs = {jid};
    String orderBy = "_id asc limit (select count(*) from chat)" + (-end) + "," + "(select count(*) from chat)";
    new AsyncQueryHandler(mContentResolver) {
        @Override
        protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
            ListAdapter adapter = new ChatAdapter(ChatActivity.this,
                    cursor, PROJECTION_FROM);
            lv_chat.setAdapter(adapter);
            lv_chat.setSelection(adapter.getCount() - chatPosition);
        }

    }.startQuery(0, null, ChatProvider.CONTENT_URI, PROJECTION_FROM, selection, selectionArgs, orderBy);
}
	*关键是这一句orderBy,它用来处理查询的排序条件,使用ASC排序并且默认显示聊天的个数减去每一页的显示个数到最后的那个聊天个数
,每刷新一次就改变显示的个数,这样就可以达到显示的效果,但是这样刷新,刷新之后会跳到最新条聊天。
2.刷新之后跳到之前消息的位置。
 lv_chat.setSelection(adapter.getCount() - chatPosition);
这一句代码listview可以跳转到指定位置,再看一看下拉刷新:
	
 lv_chat.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {//下滑
//                Toast.makeText(ChatActivity.this, "加载聊天", 0).show();
                end += Constant.CHAT_NUM;
                chatPosition += Constant.CHAT_NUM;
                Log.d("mmd", end + "");
                Log.d("hhh", chatPosition + "");
                setChatWindowAdapter();
                flag++;
                new FinishRefresh().execute();
            }

            class FinishRefresh extends AsyncTask<Void, Void, Void> {
                @Override
                protected Void doInBackground(Void... params) {
                    return null;
                }

                @Override
                protected void onPostExecute(Void result) {
                    lv_chat.onRefreshComplete();
                }
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {//上滑
            }
        });
    }
这样处理之后就可以实现聊天,下拉刷新加载历史记录了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
骑士PHP人才系统是一项基于PHP+MYSQL为核心开发的一套免费+开源专业人才系统,软件具执行效率高、模板自由切换、后台管理功能方便等诸多优秀特点,凭借骑士网络的不断创新精神和认真的工作态度,相信骑士能够为您带来全新的使用体验! 骑士PHP人才系统 6.0.20 更新日志:2020-03-31新增 隐私政策;新增 腾讯验证;新增 网络招聘会个人报名功能;新增 企业报名营业执照认证限制,促进认证实名;新增 参会企业排序置顶;新增 个人报名限制,促进引导完善简历;新增 视频面试;新增 网络招聘统计功能(企业数、职位数、岗位数、浏览量);新增 清理系统消息功能【工具-数据安全-数据清理-清除历史系统消息】;修复 公众号营销,企业列表内网站名称写死问题;修复 职位详情页聊天引导二维码;修复 求职者大厅数据不对应的问题;修复 搜索数据不准确;修复 企业详情页、职位详情页xss漏洞;修复 优惠券抵扣金额漏洞;修复 企业设置联系方式手机不公开,只显示固话,触屏点拔号是手机号的问题;修复 分站logo上传问题;修复 分站首页关键字描述问题;修复 后台职位分类里面的职位描述保存不成功;修复 企业通过微信通知里查看了简历,后台收到的简历还是会显示未查看的问题;修复 公众号营销生成带二维码的,清除缓存后,无法扫描获取企业联系方式的问题;修复 后台-企业管理-统计-行为分析-不是同一个会员;优化 手势验证在ie下的兼容性;优化 微信模板通知【行业名称】;优化 本地环境下【localhost】获取IP地址响应慢问题;优化 页面底部备案号加链接跳转;优化 页面CSS,JS文件加载更新时间的单位改为天;优化 申请职位提示不显示;优化 企业实地认证报告里面的图片可以和七牛云对接;优化 网络招聘会触屏详情二维码调出-调当前招聘会的;优化 网络招聘会招聘会详情页SEO设置;优化 PC端默认简历头像;优化 腾讯云验证码;优化 验证码引用;优化 招聘大厅数据分页问题;优化 企业发布新职位时更新企业刷新时间;优化 微信直面;优化 系统升级方案,短期内升级不需要重复填写授权信息;优化 触屏企业/个人面试邀请内容显示;优化 微信营销二维码有效期;优化 PC报名切换身份引导;优化 后台举报信息展示举报人手机号;优化 后台新增资讯默认排序;优化 后台审核简历;优化 积分商城兑换记录;优化 简历上传附件格式支持,docx,pdf;优化 视频面试密钥加密方式改为服务端加密;优化 视频面试列表错位(企业被删除)问题;优化 网络招聘会时间报名限制,结束日期当天可报名;优化 游客状态下,简历列表页投递简历问题;优化 选分站弹窗-电话号写死问题;优化 视频面试生成签名默认时间;优化 职位详情页面投递简历;优化 企业详情页电脑端的头部间距不一样;优化 职位详情页,联系方式显示问题;优化 视频面试,提醒对方加限制;优化 企业详情页二维码引导(关注公众号自动推送链接);优化 职位详情页二维码引导(关注公众号自动推送链接);优化 后台左侧导航加滚动条;优化 职位搜索;优化 微信小程序联系方式图形化。
CCTalk4.5.18.92 1.黑板讲义支持激光笔,以及白板笔涂画 2.修复一些界面问题,以及性能问题 CCTalk4.5.17.90 1.改进注册账号体验,不用再跳到网页浏览器 2.优化主面板学习中心入口,展示更明显 3.进教室时支持提醒测试麦克风 4.教室里听课时,支持一键优化语音卡顿 5.教室里的大喇叭通告支持网址可点 6.优化教室视频授课的性能 7.增加对新黑板讲义的兼容提醒 8.修复打开学习中心时有时CT崩溃的问题 9.修复打开教室窗口时,教室名称显示较慢的问题 10.修复教室窗口在系统任务栏上没有显示名称的问题 11.修复“主面板-我的教室”里添加按钮打开界面不对的问题 12.修复某些情况下挂机时CT崩溃的问题 CCTalk4.5.17.88 1.优化主面板学习中心入口,展示更明显 2.教室里听课时,支持一键优化语音卡顿 3.改进注册账号体验,不用再跳到网页浏览器 4.修复打开学习中心时有时CT崩溃的问题 5.修复打开教室窗口时,教室名称显示较慢的问题 6.修复教室窗口在系统任务栏上没有显示名称的问题 7.修复“主面板-我的教室”里添加按钮打开界面不对的问题 8.修复某些情况下挂机时CT崩溃的问题 CCTalk4.5.17.82 1.全新的“学习中心”,内容更丰富、选课更便捷 2.改进了课程推荐的消息弹窗体验 3.改进了CT程序内网页相关功能的稳定性 CCTalk4.5.16.76 1.支持答题功能,目前支持单选题,并且可以设置题干和答案 2.支持给老师献花,献花由参加答题答对获得 3.优化了讲义上传速度和体验,支持显示上传进度 4.支持登录CT时自动打开学习中心,CT设置里支持可选 5.群公告支持直接点击网址链接 6.优化屏幕分享,解决画面卡顿问题 7.客户端更新了黑板讲义底部操作栏的视觉样式 8.修复分享讲义多人无效的问题 9.修复用新建议系统分享给用老版本的用户,然后看不到讲义的问题 10.修复主界面搜索结果里,键盘快键键选不到群的问题 11.修复CT系统托盘的右键菜单被未读消息小盒子窗口挡住的问题 12.修复CT自升级时不停弹通知的问题 CCTalk4.5.15.66 1.优化了CT本身运行稳定性 2.优化了教室黑板的运行性能 3.修复了教室黑板的一些问题 CCTalk4.4.14.62 1.优化黑板讲义界面和操作 2.优化讨论组和群聊天消息的稳定性 3.修复消息发送成功但仍然提示发送失败的问题 4.修复主界面搜索结果里群排在讨论组后面的问题 5.修复有时没操作但出现语音聊天请求的问题 6.修复千人群里成员显示不全的问题 CCTalk4.4.12.54 1.增加群功能,方便私密群体交流 2.支持老师打开自己的摄像头进行视频授课 3.支持老师分享自己的屏幕进行授课 4.讨论组和群里支持屏蔽别人发的音效 5.支持快捷键提取未读新消息,默认Alt+Z 6.聊天窗口里,支持显示最近的10条历史消息 7.优化聊天窗口里滚动查看多张图片时的体验 8.优化打开和翻看聊天记录时的滚动条的默认位置体验 9.CT截图工具栏采用了新的视觉设计 CCTalk4.1.3.18 该版着重优化了新消息的提醒体验,建议大家更新。 1.新消息支持在系统托盘闪烁提醒,弹窗打扰不再有 2.增加“未读消息管理器”,方便批量查看新消息 3.“未读消息管理器”支持批量处理好友请求 4.主界面增加“我的网校”,同步网校消息中心通知 5.教室里增加当前和近期公开课节目预告 6.教室里增加大喇叭置顶广播通知 7.主界面“我的头像”鼠标悬浮时支持显示“我的名片” 8.优化1对1语音的一些界面和提示信息 9.支持显示好友当前所在教室,可以直接点击进入 10.更新了升级界面,并修复了一些问题 4.0.1.10 1.优化主界面和直播教室界面布局,全新的视觉设计 2.增加“我的课程表”,公开课预约日程一清二楚 3.我的好友支持添加分组,方便管理好友 4.支持批量移动好友到其它分组 5.支持鼠标拖曳移动好友到其它分组 6.支持鼠标拖曳改变好友分组排序 7.主界面搜索支持搜课、搜教室、搜好友 8.主界面搜索结果里,支持右键快捷操作 9.支持鼠标拖曳移动私聊会话标签的排序 10.改进教室公告,不再每次都弹出,有未读条目时显示数字提示 CCTalk3.2.6.68 1.增加举报恶意用户功能,共同维护良好学习环境 2.改进开机时自动登录的性能 3.支持含特殊字符(包括空格)的用户名登录 4.断网后,教室里支持自动重连、无需退出教室 5.优化黑板的演示性能,解决某些情况下卡顿的问题 6.优化语音传输性能,修复某些情况下没有声音的问题 CCTalk3.1.5.62 1.增加支持用户名、邮箱和手机号登录 2.改进CT热键设置与其它软件相同时的逻辑和提示

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值