list滑动删除item
来源:互联网 发布:淘宝可以延迟几天确定 编辑:程序博客网 时间:2024/05/21 17:35
public class Adapter_Coupons extends ArrayAdapter<Coupon> {
private LayoutInflater mInflater;
/**券列表*/
public ArrayList<Coupon> CouponsListAdapter = new ArrayList<Coupon>();
private Button curDel_btn;
private float x, ux;
private CouponDiscount mCouponDiscount;
public Adapter_Coupons(CouponDiscount activity) {
super(activity, 0);
mInflater = LayoutInflater.from(activity);
mCouponDiscount = activity;
}
@Override
public int getCount() {
return CouponsListAdapter.size();
}
@Override
public Coupon getItem(int position) {
if(position >= getCount()){
return null;
}
return CouponsListAdapter.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
final Coupon mCoupon = this.getItem(position);
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item_listview_coupon, null);
holder = new ViewHolder();
holder.couponName = (TextView) convertView.findViewById(R.id.couponName);
holder.couponPrice = (TextView) convertView.findViewById(R.id.couponPrice);
holder.couponNumber = (TextView) convertView.findViewById(R.id.couponNumber);
holder.couponValidity = (TextView) convertView.findViewById(R.id.couponValidity);
holder.comboPart = (TextView) convertView.findViewById(R.id.comboPart);
holder.comboNumber = (TextView) convertView.findViewById(R.id.comboNumber);
holder.btn_Coupon_Delete = (Button) convertView.findViewById(R.id.btn_Coupon_Delete);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// 为每一个view项设置触控监听
convertView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
final ViewHolder holder = (ViewHolder) v.getTag();
// 当按下时处理
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// 设置背景为选中状态
// v.setBackgroundResource(R.drawable.mm_listitem_pressed);
// 获取按下时的x轴坐标
x = event.getX();
// 判断之前是否出现了删除按钮如果存在就隐藏
if (curDel_btn != null) {
curDel_btn.setVisibility(View.GONE);
}
} else if (event.getAction() == MotionEvent.ACTION_UP) {// 松开处理
// 设置背景为未选中正常状态
// v.setBackgroundResource(R.drawable.mm_listitem_simple);
// 获取松开时的x坐标
ux = event.getX();
// 判断当前项中按钮控件不为空时
if (holder.btn_Coupon_Delete != null) {
// 按下和松开绝对值差当大于20时显示删除按钮,否则不显示
if (Math.abs(x - ux) > 20) {
holder.btn_Coupon_Delete.setVisibility(View.VISIBLE);
curDel_btn = holder.btn_Coupon_Delete;
}
}
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {// 当滑动时背景为选中状态
// v.setBackgroundResource(R.drawable.mm_listitem_pressed);
} else {// 其他模式
// 设置背景为未选中正常状态
// v.setBackgroundResource(R.drawable.mm_listitem_simple);
}
return true;
}
});
holder.couponName.setText(mCoupon.getQuanName());
holder.couponPrice.setText("10元");
holder.couponNumber.setText("券号:"+mCoupon.getQuanNum());
holder.couponValidity.setText(mCoupon.getQuanValiddate());
Combo mCombo = mCoupon.getQuanCombo();
if(mCombo != null){
holder.comboPart.setText("套餐:"+mCombo.getComboPart());
holder.comboNumber.setText("附加"+mCombo.count+"套");
}else{
holder.comboPart.setText("套餐:无");
}
// holder.comboNumber.setText(""+mCombo.number);
// 为删除按钮添加监听事件,实现点击删除按钮时删除该项
holder.btn_Coupon_Delete.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mCouponDiscount.removeCoupons(mCoupon.getQuanNum(),position);
}
});
return convertView;
}
public class ViewHolder {
public TextView couponName;
public TextView couponPrice;
public TextView couponNumber;
public TextView couponValidity;
public TextView comboPart;
public TextView comboNumber;
//delete按钮
public Button btn_Coupon_Delete;
}
public void removeCoupons(int position){
if (curDel_btn != null){
curDel_btn.setVisibility(View.GONE);
}
CouponsListAdapter.remove(position);
notifyDataSetChanged();
}
}
private LayoutInflater mInflater;
/**券列表*/
public ArrayList<Coupon> CouponsListAdapter = new ArrayList<Coupon>();
private Button curDel_btn;
private float x, ux;
private CouponDiscount mCouponDiscount;
public Adapter_Coupons(CouponDiscount activity) {
super(activity, 0);
mInflater = LayoutInflater.from(activity);
mCouponDiscount = activity;
}
@Override
public int getCount() {
return CouponsListAdapter.size();
}
@Override
public Coupon getItem(int position) {
if(position >= getCount()){
return null;
}
return CouponsListAdapter.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
final Coupon mCoupon = this.getItem(position);
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.item_listview_coupon, null);
holder = new ViewHolder();
holder.couponName = (TextView) convertView.findViewById(R.id.couponName);
holder.couponPrice = (TextView) convertView.findViewById(R.id.couponPrice);
holder.couponNumber = (TextView) convertView.findViewById(R.id.couponNumber);
holder.couponValidity = (TextView) convertView.findViewById(R.id.couponValidity);
holder.comboPart = (TextView) convertView.findViewById(R.id.comboPart);
holder.comboNumber = (TextView) convertView.findViewById(R.id.comboNumber);
holder.btn_Coupon_Delete = (Button) convertView.findViewById(R.id.btn_Coupon_Delete);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
// 为每一个view项设置触控监听
convertView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
final ViewHolder holder = (ViewHolder) v.getTag();
// 当按下时处理
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// 设置背景为选中状态
// v.setBackgroundResource(R.drawable.mm_listitem_pressed);
// 获取按下时的x轴坐标
x = event.getX();
// 判断之前是否出现了删除按钮如果存在就隐藏
if (curDel_btn != null) {
curDel_btn.setVisibility(View.GONE);
}
} else if (event.getAction() == MotionEvent.ACTION_UP) {// 松开处理
// 设置背景为未选中正常状态
// v.setBackgroundResource(R.drawable.mm_listitem_simple);
// 获取松开时的x坐标
ux = event.getX();
// 判断当前项中按钮控件不为空时
if (holder.btn_Coupon_Delete != null) {
// 按下和松开绝对值差当大于20时显示删除按钮,否则不显示
if (Math.abs(x - ux) > 20) {
holder.btn_Coupon_Delete.setVisibility(View.VISIBLE);
curDel_btn = holder.btn_Coupon_Delete;
}
}
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {// 当滑动时背景为选中状态
// v.setBackgroundResource(R.drawable.mm_listitem_pressed);
} else {// 其他模式
// 设置背景为未选中正常状态
// v.setBackgroundResource(R.drawable.mm_listitem_simple);
}
return true;
}
});
holder.couponName.setText(mCoupon.getQuanName());
holder.couponPrice.setText("10元");
holder.couponNumber.setText("券号:"+mCoupon.getQuanNum());
holder.couponValidity.setText(mCoupon.getQuanValiddate());
Combo mCombo = mCoupon.getQuanCombo();
if(mCombo != null){
holder.comboPart.setText("套餐:"+mCombo.getComboPart());
holder.comboNumber.setText("附加"+mCombo.count+"套");
}else{
holder.comboPart.setText("套餐:无");
}
// holder.comboNumber.setText(""+mCombo.number);
// 为删除按钮添加监听事件,实现点击删除按钮时删除该项
holder.btn_Coupon_Delete.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mCouponDiscount.removeCoupons(mCoupon.getQuanNum(),position);
}
});
return convertView;
}
public class ViewHolder {
public TextView couponName;
public TextView couponPrice;
public TextView couponNumber;
public TextView couponValidity;
public TextView comboPart;
public TextView comboNumber;
//delete按钮
public Button btn_Coupon_Delete;
}
public void removeCoupons(int position){
if (curDel_btn != null){
curDel_btn.setVisibility(View.GONE);
}
CouponsListAdapter.remove(position);
notifyDataSetChanged();
}
}
- list滑动删除item
- 滑动删除ListView的Item
- listView 的item滑动删除
- android ListView横向滑动删除Item
- android 实现Listview左右滑动删除Item
- android listview item 左右滑动删除
- 赵雅智_AndroidUI_listview的item滑动删除效果
- AndroidUI_listview的item滑动删除效果
- 自定义滑动删除item的ListView。
- 滑动删除ListView的Item的效果
- 简单的listview item滑动删除
- SwipeLayout 类似ListView item滑动删除动画
- listview滑动删除item的一个方案
- listView的item向左滑动实现删除
- ListView的Item的滑动删除
- 自定义组合控件之滑动item+删除
- android Item 滑动删除核心逻辑实现
- RecycleView简单实现滑动删除Item
- 写给学弟的几句话
- 查看数组内容
- VC/MFC之ListCtrl控件使用经验总结(转)
- cocos2d-x 模仿捕鱼一些小细节
- IOS利用AVPlayer开发多媒体在线播放器
- list滑动删除item
- 防火涂料存在主要问题有哪些?
- 程序员技术练级攻略
- 聚类(2)——层次聚类 Hierarchical Clustering
- Linux输出所在目录
- Hibernate datetime 与 JAVA date 不兼容的解决方法
- ibatis初级应用(一)
- http和https
- c++数据管理和驱动