android listview刷新 侧滑,android--------ListView和ExpandableListView的侧滑删除操作

本案例主要实现了ListView和ExpandableListView的侧滑删除操作功能

效果图:

deda10f582dbbbc837431854b8029d45.gif

代码:

private class SlideAdapter extends BaseAdapter {

private LayoutInflater mInflater;

SlideAdapter() {

super();

mInflater = getLayoutInflater();

}

@Override

public int getCount() {

return mMessageItems.size();

}

@Override

public Object getItem(int position) {

return mMessageItems.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

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

ViewHolder holder;

ZQView slideView = (ZQView) convertView;

if (slideView == null) {

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

slideView = new ZQView(ActivityListViewDelete.this);

slideView.setContentView(itemView);

holder = new ViewHolder(slideView);

slideView.setTag(holder);

} else {

holder = (ViewHolder) slideView.getTag();

}

MessageItem item = mMessageItems.get(position);

slideView.shrink();

holder.title.setText(item.title);

holder.time.setText(item.time);

holder.deleteHolder.setOnClickListener(ActivityListViewDelete.this);

return slideView;

}

}

public class MessageItem {

public String title;

public String msg;

public String time;

}

private static class ViewHolder {

public ImageView icon;

public TextView title;

public TextView time;

public ViewGroup deleteHolder;

ViewHolder(View view) {

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

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

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

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

}

}

@Override

public void onItemClick(AdapterView> parent, View view, int position,

long id) {

Toast.makeText(this, "onItemClick position=" + position, Toast.LENGTH_LONG).show();

}

@Override

public void onClick(View v) {

if (v.getId() == R.id.holder) {

Toast.makeText(this, "删除操作", Toast.LENGTH_LONG).show();

}

}

ExpandableListView的Adapter

private Context context;

private ListView listView;

List list;

public MyElvAdapter(Context context, ListView listView, List list) {

super();

this.context = context;

this.listView = listView;

this.list=list;

}

@Override

public Object getChild(int arg0, int arg1) {

// TODO Auto-generated method stub

return list.get(arg0).getDatas().get(arg1);

}

@Override

public long getChildId(int arg0, int arg1) {

// TODO Auto-generated method stub

return 0;

}

@Override

public View getChildView(final int groupPosition, final int position,

boolean arg2, View convertView, ViewGroup parent) {

final ViewHolder1 viewHolder1;

if (convertView == null){

convertView = LayoutInflater.from(context).inflate(R.layout.item2,

null);

viewHolder1=new ViewHolder1(convertView);

convertView.setTag(viewHolder1);

}else {

viewHolder1=(ViewHolder1)convertView.getTag();

}

new FrontViewToMove(viewHolder1.frontView, listView,200);

viewHolder1.button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

//删除事件,回调接口传参数

onClickDeleteListenter.onItemClick(v,groupPosition,position);

new FrontViewToMove(viewHolder1.frontView, listView,200).

generateRevealAnimate(viewHolder1.frontView,0);

}

});

viewHolder1.textView.setTextSize(20);

viewHolder1.textView.setTextColor(Color.DKGRAY);

viewHolder1.textView.

setText(" " + list.get(groupPosition).getDatas().get(position).getName());

return convertView;

}

class ViewHolder1 {

private TextView textView;

private View frontView;

private Button button;

public ViewHolder1(View view){

textView= (TextView) view.findViewById(R.id.text);

button = (Button) view.findViewById(R.id.btn_delete);

frontView = view.findViewById(R.id.id_front);

}

}

// 删除接口回调方法

private OnClickDeleteListenter onClickDeleteListenter = null;

public void setOnClickDeleteListenter(OnClickDeleteListenter listener) {

this.onClickDeleteListenter = listener;

}

@Override

public int getChildrenCount(int arg0) {

// TODO Auto-generated method stub

return (list!=null && list.size()>0)? list.get(arg0).getDatas().size() : 0;

}

@Override

public Object getGroup(int arg0) {

// TODO Auto-generated method stub

return list.get(arg0);

}

@Override

public int getGroupCount() {

// TODO Auto-generated method stub

return (list!=null && list.size()>0) ? list.size() : 0;

}

@Override

public long getGroupId(int arg0) {

// TODO Auto-generated method stub

return 0;

}

@Override

public View getGroupView(final int groupPosition, boolean isExpanded,

View convertView, ViewGroup parent) {

final ViewHolder viewHolder;

if (convertView ==null){

convertView = LayoutInflater.from(context).inflate(R.layout.item1,null);

viewHolder =new ViewHolder(convertView);

convertView.setTag(viewHolder);

}else {

viewHolder=(ViewHolder)convertView.getTag();

}

viewHolder.textView.setText("条目 " + list.get(groupPosition).getId());

viewHolder.textView.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(context,"第一层点击操作",Toast.LENGTH_LONG).show();

}

});

return convertView;

}

@Override

public boolean hasStableIds() {

// TODO Auto-generated method stub

return false;

}

@Override

public boolean isChildSelectable(int arg0, int arg1) {

// TODO Auto-generated method stub

return false;

}

class ViewHolder {

TextView textView;

public ViewHolder(View view){

textView= (TextView) view.findViewById(R.id.name);

}

}

注:更新修复侧滑删除报错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值