免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2281 | 回复: 0
打印 上一主题 下一主题

[Android] android QQ消息左滑动删除实例(优化版SwipeListViewEX) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-05-29 09:56 |只看该作者 |倒序浏览
仿 QQ消息左滑动删除item消息实例

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

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

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

效果图:




以下只有适配器类:
  1. package com.ryg.slideview;

  2. import java.util.List;

  3. import com.ryg.slideview.SwipeItemView.OnSlideListener;

  4. import android.content.Context;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.view.ViewGroup;
  9. import android.widget.BaseAdapter;
  10. import android.widget.ImageView;
  11. import android.widget.TextView;
  12. import android.widget.Toast;


  13. public class HistoryListViewAdapter extends BaseAdapter {

  14.     private LayoutInflater mInflater;
  15.     private List<HistoryListItemObject> mMessageItems;
  16.     private Context context;
  17.     private SwipeItemView mLastSlideViewWithStatusOn;
  18.     public HistoryListViewAdapter(Context context,List<HistoryListItemObject> mMessageItems) {
  19.         mInflater = LayoutInflater.from(context);
  20.         this.mMessageItems=mMessageItems;
  21.         this.context=context;
  22.     }

  23.     @Override
  24.     public int getCount() {
  25.         return mMessageItems.size();
  26.     }

  27.     @Override
  28.     public Object getItem(int position) {
  29.         return mMessageItems.get(position);
  30.     }

  31.     @Override
  32.     public long getItemId(int position) {
  33.         return position;
  34.     }

  35.     @Override
  36.     public View getView(final int position, View convertView, ViewGroup parent) {
  37.         ViewHolder holder;
  38.         SwipeItemView slideView = (SwipeItemView) convertView;
  39.         if (slideView == null) {
  40.             View itemView = mInflater.inflate(R.layout.history_listview_items, null);

  41.             slideView = new SwipeItemView(context);
  42.             slideView.setContentView(itemView);

  43.             holder = new ViewHolder(slideView);
  44.             slideView.setOnSlideListener(new OnSlideListener() {
  45.                
  46.                 @Override
  47.                 public void onSlide(View view, int status) {
  48.                     // TODO Auto-generated method stub
  49.                      if (mLastSlideViewWithStatusOn != null && mLastSlideViewWithStatusOn != view) {
  50.                             mLastSlideViewWithStatusOn.shrink();
  51.                         }

  52.                         if (status == SLIDE_STATUS_ON) {
  53.                             mLastSlideViewWithStatusOn = (SwipeItemView) view;
  54.                         }
  55.                 }
  56.             });
  57.             slideView.setTag(holder);
  58.         } else {
  59.             holder = (ViewHolder) slideView.getTag();
  60.         }
  61.         HistoryListItemObject item = mMessageItems.get(position);
  62. //        item.slideView = slideView;
  63.         if(CustomSwipeListView.mFocusedItemView!=null){
  64.         CustomSwipeListView.mFocusedItemView.shrink();
  65.         }

  66.         holder.icon.setImageResource(item.getIconRes());
  67.         holder.title.setText(item.getTitle());
  68.         holder.msg.setText(item.getMsg());
  69. //        holder.time.setText(item.time);
  70.         holder.deleteHolder.setOnClickListener(new OnClickListener() {
  71.             
  72.             @Override
  73.             public void onClick(View arg0) {
  74.                 // TODO Auto-generated method stub
  75.                 mMessageItems.remove(position);
  76.                 Toast.makeText(context, String.valueOf(position), Toast.LENGTH_SHORT).show();
  77.                 notifyDataSetChanged();
  78.             }
  79.         });

  80.         return slideView;
  81.     }
  82.     private static class ViewHolder {
  83.         public ImageView icon;
  84.         public TextView title;
  85.         public TextView msg;
  86. //        public TextView time;
  87.         public ViewGroup deleteHolder;

  88.         ViewHolder(View view) {
  89.             icon = (ImageView) view.findViewById(R.id.icon);
  90.             title = (TextView) view.findViewById(R.id.title);
  91.             msg = (TextView) view.findViewById(R.id.msg);
  92. //            time = (TextView) view.findViewById(R.id.time);
  93.             deleteHolder = (ViewGroup)view.findViewById(R.id.holder);
  94.         }
  95.     }
  96. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP