android QQ消息左滑动删除实例(优化版SwipeListViewEX)

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

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

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

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

效果图:

android QQ消息左滑动删除实例(优化版SwipeListViewEX)

android QQ消息左滑动删除实例(优化版SwipeListViewEX)

android QQ消息左滑动删除实例(优化版SwipeListViewEX)

以下只有适配器类:

  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 

 18 public class HistoryListViewAdapter extends BaseAdapter {

 19 

 20     private LayoutInflater mInflater;

 21     private List<HistoryListItemObject> mMessageItems;

 22     private Context context;

 23     private SwipeItemView mLastSlideViewWithStatusOn;

 24     public HistoryListViewAdapter(Context context,List<HistoryListItemObject> mMessageItems) {

 25         mInflater = LayoutInflater.from(context);

 26         this.mMessageItems=mMessageItems;

 27         this.context=context;

 28     }

 29 

 30     @Override

 31     public int getCount() {

 32         return mMessageItems.size();

 33     }

 34 

 35     @Override

 36     public Object getItem(int position) {

 37         return mMessageItems.get(position);

 38     }

 39 

 40     @Override

 41     public long getItemId(int position) {

 42         return position;

 43     }

 44 

 45     @Override

 46     public View getView(final int position, View convertView, ViewGroup parent) {

 47         ViewHolder holder;

 48         SwipeItemView slideView = (SwipeItemView) convertView;

 49         if (slideView == null) {

 50             View itemView = mInflater.inflate(R.layout.history_listview_items, null);

 51 

 52             slideView = new SwipeItemView(context);

 53             slideView.setContentView(itemView);

 54 

 55             holder = new ViewHolder(slideView);

 56             slideView.setOnSlideListener(new OnSlideListener() {

 57                 

 58                 @Override

 59                 public void onSlide(View view, int status) {

 60                     // TODO Auto-generated method stub

 61                      if (mLastSlideViewWithStatusOn != null && mLastSlideViewWithStatusOn != view) {

 62                             mLastSlideViewWithStatusOn.shrink();

 63                         }

 64 

 65                         if (status == SLIDE_STATUS_ON) {

 66                             mLastSlideViewWithStatusOn = (SwipeItemView) view;

 67                         }

 68                 }

 69             });

 70             slideView.setTag(holder);

 71         } else {

 72             holder = (ViewHolder) slideView.getTag();

 73         }

 74         HistoryListItemObject item = mMessageItems.get(position);

 75 //        item.slideView = slideView;

 76         if(CustomSwipeListView.mFocusedItemView!=null){

 77         CustomSwipeListView.mFocusedItemView.shrink();

 78         }

 79 

 80         holder.icon.setImageResource(item.getIconRes());

 81         holder.title.setText(item.getTitle());

 82         holder.msg.setText(item.getMsg());

 83 //        holder.time.setText(item.time);

 84         holder.deleteHolder.setOnClickListener(new OnClickListener() {

 85             

 86             @Override

 87             public void onClick(View arg0) {

 88                 // TODO Auto-generated method stub

 89                 mMessageItems.remove(position);

 90                 Toast.makeText(context, String.valueOf(position), Toast.LENGTH_SHORT).show();

 91                 notifyDataSetChanged();

 92             }

 93         });

 94 

 95         return slideView;

 96     }

 97     private static class ViewHolder {

 98         public ImageView icon;

 99         public TextView title;

100         public TextView msg;

101 //        public TextView time;

102         public ViewGroup deleteHolder;

103 

104         ViewHolder(View view) {

105             icon = (ImageView) view.findViewById(R.id.icon);

106             title = (TextView) view.findViewById(R.id.title);

107             msg = (TextView) view.findViewById(R.id.msg);

108 //            time = (TextView) view.findViewById(R.id.time);

109             deleteHolder = (ViewGroup)view.findViewById(R.id.holder);

110         }

111     }

112 }

 

你可能感兴趣的:(ListView)