仿 QQ消息左滑动删除item消息实例

源代码参考:http://blog.csdn.net/gaolei1201/article/details/42677951

自己作了一些调整,全部代码下载地址:

http://download.csdn.net/detail/jenson138/8490067

效果图:

以下只有适配器类:

  1. package com.ryg.slideview;
  2.  
  3. import java.util.List;
  4.  
  5. import com.ryg.slideview.SwipeItemView.OnSlideListener;
  6.  
  7. import android.content.Context;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.View.OnClickListener;
  11. import android.view.ViewGroup;
  12. import android.widget.BaseAdapter;
  13. import android.widget.ImageView;
  14. import android.widget.TextView;
  15. import android.widget.Toast;
  16.  
  17. public class HistoryListViewAdapter extends BaseAdapter {
  18.  
  19. private LayoutInflater mInflater;
  20. private List<HistoryListItemObject> mMessageItems;
  21. private Context context;
  22. private SwipeItemView mLastSlideViewWithStatusOn;
  23. public HistoryListViewAdapter(Context context,List<HistoryListItemObject> mMessageItems) {
  24. mInflater = LayoutInflater.from(context);
  25. this.mMessageItems=mMessageItems;
  26. this.context=context;
  27. }
  28.  
  29. @Override
  30. public int getCount() {
  31. return mMessageItems.size();
  32. }
  33.  
  34. @Override
  35. public Object getItem(int position) {
  36. return mMessageItems.get(position);
  37. }
  38.  
  39. @Override
  40. public long getItemId(int position) {
  41. return position;
  42. }
  43.  
  44. @Override
  45. public View getView(final int position, View convertView, ViewGroup parent) {
  46. ViewHolder holder;
  47. SwipeItemView slideView = (SwipeItemView) convertView;
  48. if (slideView == null) {
  49. View itemView = mInflater.inflate(R.layout.history_listview_items, null);
  50.  
  51. slideView = new SwipeItemView(context);
  52. slideView.setContentView(itemView);
  53.  
  54. holder = new ViewHolder(slideView);
  55. slideView.setOnSlideListener(new OnSlideListener() {
  56.  
  57. @Override
  58. public void onSlide(View view, int status) {
  59. // TODO Auto-generated method stub
  60. if (mLastSlideViewWithStatusOn != null && mLastSlideViewWithStatusOn != view) {
  61. mLastSlideViewWithStatusOn.shrink();
  62. }
  63.  
  64. if (status == SLIDE_STATUS_ON) {
  65. mLastSlideViewWithStatusOn = (SwipeItemView) view;
  66. }
  67. }
  68. });
  69. slideView.setTag(holder);
  70. } else {
  71. holder = (ViewHolder) slideView.getTag();
  72. }
  73. HistoryListItemObject item = mMessageItems.get(position);
  74. // item.slideView = slideView;
  75. if(CustomSwipeListView.mFocusedItemView!=null){
  76. CustomSwipeListView.mFocusedItemView.shrink();
  77. }
  78.  
  79. holder.icon.setImageResource(item.getIconRes());
  80. holder.title.setText(item.getTitle());
  81. holder.msg.setText(item.getMsg());
  82. // holder.time.setText(item.time);
  83. holder.deleteHolder.setOnClickListener(new OnClickListener() {
  84.  
  85. @Override
  86. public void onClick(View arg0) {
  87. // TODO Auto-generated method stub
  88. mMessageItems.remove(position);
  89. Toast.makeText(context, String.valueOf(position), Toast.LENGTH_SHORT).show();
  90. notifyDataSetChanged();
  91. }
  92. });
  93.  
  94. return slideView;
  95. }
  96. private static class ViewHolder {
  97. public ImageView icon;
  98. public TextView title;
  99. public TextView msg;
  100. // public TextView time;
  101. public ViewGroup deleteHolder;
  102.  
  103. ViewHolder(View view) {
  104. icon = (ImageView) view.findViewById(R.id.icon);
  105. title = (TextView) view.findViewById(R.id.title);
  106. msg = (TextView) view.findViewById(R.id.msg);
  107. // time = (TextView) view.findViewById(R.id.time);
  108. deleteHolder = (ViewGroup)view.findViewById(R.id.holder);
  109. }
  110. }
  111. }

android QQ消息左滑动删除实例(优化版SwipeListViewEX)的更多相关文章

  1. Android 编程下代码之(QQ消息列表滑动删除)

       这份代码写出来有些时候了,一直没共享,现在把它共享给大家.简单列一下代码中你可以学到的知识点: 自定义控件的实现方式: 事件的拦截分发消费机制: QQ会话列表滑动删除原理: 最后附上源码链接:Q ...

  2. 类似QQ消息左滑删除的Demo

    最近在网上学到一篇类似QQ消息左滑删除的demo,完善了下代码,感觉还不错,特此分享一波: CustomSwipeListView.java 是个继承自ListView的类,里面调用了自定义View ...

  3. 使用zepto实现QQ消息左滑删除效果

    有这样一个需求: 1. 有一个列表,将每一个列表项左滑动出现删除按钮: 2. 右滑动隐藏删除按钮: 3. 点击这个删除按钮删除该列表项. 完成以后的效果: 这是微信网页端的页面,使用的是 zepto ...

  4. python+appium 实现qq聊天的消息,滑动删除聊天消息

    有人问我,appium怎么去删除qq聊天的, 当时想到的是滑动, 可是具体的大概有个思路,于是乎,就想自己来实现下, 打开模拟器,开发者选项,找到显示坐标的 然后去打开qq获取要删除的消息的坐标后, ...

  5. 写一个js向左滑动删除 交互特效的插件——Html5 touchmove

    需求描述 需要实现类似QQ中对联系人的操作:向左滑动,滑出删除按钮.滑动超过一半时松开则自动滑到底,不到一半时松开则返回原处. 纯js实现 使用了h5的touchmove等事件,以及用js动态改变cs ...

  6. html5向左滑动删除特效

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. iOS边练边学--简单的数据操作(增、删、改),左滑动删除和弹窗

    一.数据刷新的原则: 通过修改模型数据,来修改tableView的展示 先修改数据模型 在调用数据刷新方法 不要直接修改cell上面子控件的属性 二.增删改用到的方法: <1>重新绑定屏幕 ...

  8. [转]ANDROID仿IOS微信滑动删除_SWIPELISTVIEW左滑删除例子

    转载:http://dwtedx.sinaapp.com/itshare_290.html 本例子实现了滑动删除ListView的Itemdemo的效果.大家都知道.这种创意是来源于IOS的.左滑删除 ...

  9. android中列表的滑动删除仿ios滑动删除

    大家是不是觉得ios列表的滑动删除效果很酷炫?不用羡慕android也可以实现相同的效果 并且可以自定义效果,比如左滑删除,置顶,收藏,分享等等 其实就是自定义listview重写listview方法 ...

随机推荐

  1. shell脚本集合

    慢慢学习,慢慢记吧 第一个shell脚本,创建用户,默认密码用户名,使得用户第一次登陆强制修改密码的脚本 #/bin/bash #创建用户,指定初始密码用户名,第一次登陆后强制修改用户名 userad ...

  2. 本机jdbc连接报The user specified as a definer ('root'@'%') does not exist

    昨晚一台测试服务器连接本机的mysql时,有些调用存储过程报"The user specified as a definer ('root'@'%') does not exist" ...

  3. Navicat for Oracle实现连接Oracle

    不知道为什么,从一开始,我就不喜欢Oracle,名字好听,功能强大,但总感觉"高不可攀";或许是因为我觉得其他的数据库就可以解决数据问题,不太了解Oracle的优势:而且它长得也不 ...

  4. 一步一步教你如何解锁被盗的iPhone 6S

    即使你的iPhone6S设置了六位数的密码,甚至还设置了touch ID,但我要告诉你的是:你的手机仍然能被犯罪分子解锁. 事件背景 三天前,一位苹果用户的iPhone6S被偷了.随后,小偷重置了该用 ...

  5. Office 365 - SharePoint 2013 Online之添加App开发工具Napa

    1.新建一个网站集,模板选择开发人员模板,如下图: 2.确定以后,需要稍等一会儿; 3.点击网站内容,添加app,如下图: 4.进入SharePoint Store,选择Napa,如下图: 5.选择A ...

  6. javascript 中 !~ 什么意思

    快过年放假了,也终于闲下来了.每天游览于各种技术文章中,这种状态好极了.下午看篇关于js的文章,其中有如下这么一段引起了我的注意. (function () { var names = []; ret ...

  7. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q45-Q48)

    Question 45 You are designing a branding strategy for a customer with a new SharePoint 2010 server f ...

  8. 通知 - NSNotificationCenter

    1.每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信: 2.任何一个对象都可以向通知中心发布通知(NSNotification), 描 ...

  9. spring.net (3)依赖注入基础

    属性的注入: 在上篇例子中已经出现并解释过: <object id="dog" type="SpringDemo.Dog,SpringDemo" sing ...

  10. iOS开发200个tips总结(一)

    tip 1 :  给UIImage添加毛玻璃效果 func blurImage(value:NSNumber) -> UIImage { let context = CIContext(opti ...