实现的效果如图:

RecentActivity:

public class RecentActivity extends Activity{ListView listView;List<RecentEntity> chatEntityList=new ArrayList<RecentEntity>();String[] mes;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_recent);//注册广播IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction("org.yhn.yq.mes");registerReceiver(new MyBroadcastReceiver(), myIntentFilter);listView = (ListView) findViewById(R.id.lv_recent);listView.setOnItemClickListener(new OnItemClickListener(){public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {//打开聊天页面Intent intent=new Intent(RecentActivity.this,ChatActivity.class);intent.putExtra("account", Integer.parseInt(mes[0]));intent.putExtra("nick", "");startActivity(intent);}});}//广播接收器public class MyBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {mes = intent.getStringArrayExtra("message");Toast.makeText(context, "收到["+Integer.parseInt(mes[0])+"]的消息:"+mes[1], Toast.LENGTH_SHORT).show();//更新最近会话列表, 检测chatEntityList,防止同一个好友的消息出现多个会话实体Iterator it=chatEntityList.iterator();if(chatEntityList!=null && chatEntityList.size()!=0){while(it.hasNext()){RecentEntity re=(RecentEntity) it.next();if(re.getAccount()==Integer.parseInt(mes[0])){chatEntityList.remove(re);}}}chatEntityList.add(new RecentEntity(5, Integer.parseInt(mes[0]), mes[0]+"", mes[1],mes[2], false));listView.setAdapter(new RecentAdapter(RecentActivity.this, chatEntityList));unregisterReceiver(this);}}
}

RecentActivity中listview的Adapter:

public class RecentAdapter extends BaseAdapter{private Context context;private List<RecentEntity> list;LayoutInflater inflater;public RecentAdapter(Context context,List<RecentEntity> list){this.context = context;this.list = list;inflater = LayoutInflater.from(context);}public View getView(int position, View convertView, ViewGroup root) {convertView = inflater.inflate(R.layout.recent_listview_item, null);ImageView avatar=(ImageView) convertView.findViewById(R.id.iv_avatar_r);TextView nick=(TextView) convertView.findViewById(R.id.tv_nick_r);TextView content=(TextView) convertView.findViewById(R.id.tv_chat_content_r);ImageView isRead=(ImageView) convertView.findViewById(R.id.iv_tip_mes_r);TextView time=(TextView) convertView.findViewById(R.id.tv_time_r);RecentEntity re=list.get(position);nick.setText(re.getNick());content.setText(re.getContent());isRead.setImageResource(R.drawable.tips_message);time.setText(re.getTime());return convertView;}public int getCount() {return list.size();}public Object getItem(int position) {return list.get(position);}public long getItemId(int position) {return position;}
}

消息实体类,就不贴代码了,很简单,你懂的

--------------------------------------------------分割线----------------------------------------------------------

完善了部分界面,以及一些细节,

后台运行,

增加了用户头像(简易方式,暂不能自定义头像),

用户个人信息

。。。

具体就不说了看图吧:

源码已经上传至我的资源,谢谢大家支持!欢迎一起学习交流! 转载请注明出处:http://blog.csdn.net/mimitracely

Android 开发即时聊天工具 YQ :(六) 最近会话列表相关推荐

  1. Android 开发即时聊天工具 YQ :(四) 获取好友列表

    在Android 开发即时聊天工具 YQ :(三) 实现登陆功能中已经实现了登陆功能,离能聊天又近了一步了 :) 在实现聊天之前还有一个重要的东西,?没错,就是好友列表,没的好友你和谁聊呀,是吧, 嘿 ...

  2. Android 开发即时聊天工具 YQ :(五) 发送消息

    服务器端转发消息功能上节已经实现,只需将消息转发给消息包中的接收人即可, if(m.getType().equals(YQMessageType.COM_MES)){//如果是普通消息包 //取得接收 ...

  3. android 即时聊天工具 yq,Android 开发即时聊天工具 YQ :(四) 获取好友列表

    实现聊天之前还有一个重要的东西,?没错,就是好友列表,没的好友你和谁聊呀,是吧, 嘿嘿,一切从简,早点实现基本的聊天目标的说,所以代码很懒(or 烂?),为什么呢?看完就知道了, 在服务器端当登陆成功 ...

  4. Android 开发即时聊天工具 YQ :(三) 实现登陆功能

    前面socket基本通信完了,登陆界面也已经完成,下面就是重点了,实现登陆功能 服务器和客户端的代码当然不肯能用那个控制台的那个了,所以全部得重写,不过原理都一样,代码也差不多,都有注释,一看就明白. ...

  5. ios开发xmpp仿微信即时聊天工具

    最近在做一个项目,需要一个即时聊天工具,先打算有第三方环信(http://www.easemob.com),但是最终老板不允许,要自己开发用自己的服务器,哎!如果有需要的可以去看看这个环信,真的不错. ...

  6. 基于Nodejs开发的web即时聊天工具

    由于公司需要开发web即时聊天的功能,开始时我们主要的实施方法是用jquery的ajax定时(10秒)轮询向服务器请求,由于是轮询请求,对 服务器的压力比较大.我们网站上线的时间不长,访问量不是很大, ...

  7. 局域网即时聊天工具都有哪些?

    在互联网普及的今天,使用即时聊天工具沟通交流在人们的日常生活和工作当中已经十分普及.但由于企业内部敏感信息通过互联网泄露的现象频发,不少企业出于安全性考虑只能转用局域网环境办公,在转用局域网环境办公后 ...

  8. 即时聊天工具混战中国

    近闻微软MSN已经正式结盟中国内移动IM(移动即时通信)工具的领先企业PICA(皮咔),双方将在移动IM的技术研发和市场等领域展开深度合作.和我早期的一段时间分析的中国移动的飞信境况一样,即时聊天工具 ...

  9. 跨跃平台交流无极限——linux下如何使用即时聊天工具,跨跃平台 交流无极限——Linux下如何使用即时聊天工具(一)...

    I技应 术用与 跨跃平台交流无极限 维普资讯 http://doc.xuehai.net o n I s o f i e n t@ c n i i c o m t . L n x下如何使用即时聊天工具 ...

最新文章

  1. 地址总线与内存大小的关系(待续…)
  2. python网站数据写入mysql_python网络爬虫抓取动态网页并将数据存入数据库MySQL
  3. 【DAY2】hadoop 完全分布式模式配置的学习笔记
  4. sap客户主数据bapi_【SD系列】SAP SD模块-创建供应商主数据BAPI
  5. 在线等差数列项生成器
  6. matlab中平方根法,平方根法和改进的平方根法解线性方程组(Matlab程序)
  7. (centos6.5)MySQL服务安装
  8. 基于SSM开发的的小区物业管理系统小程序源码
  9. python powerbi知乎_数据分析-PowerBI
  10. linux命令练习题
  11. 小码农的代码(一)----------SpringJDBC的使用
  12. Polygon zkEVM——Hermez 2.0简介
  13. SPSS中的命令语法如何实现快速删除变量
  14. 传智播客我来啦!!!
  15. PG332 ERNIC Datasheet Translation
  16. C++黑客攻击系统-功能菜单
  17. 搭建自己的ngrok服务器搭建方式二
  18. 通俗易懂的机器学习——集成学习
  19. dnf登录游戏自动连接服务器,游戏登录-新手引导-地下城与勇士官方网站-腾讯游戏...
  20. 物联大世界 2019年国际物联网展会5月在北京盛大召开

热门文章

  1. 可以读取html文件,javascript能读取本地文件吗?
  2. matlab中的rand ,randn,和randi函数
  3. 【芝麻IP代理】8大高效的Python爬虫框架,你用过几个?
  4. AIOps指标异常检测之无监督算法
  5. 国足VS沙特荣誉之战—此战必胜
  6. nmap把端口定义为六种状态的解读
  7. 返回值被忽略_聊聊如今智能手机中一项容易被忽略的参数信息--闭环马达
  8. App案例实践:一款好用的UI自动化测试工具——Katalon
  9. 西门子南京计算机,西门子(南京)实习面试经历
  10. 计算机网络 『MAC帧格式、MAC地址』