android--------ListView和ExpandableListView的侧滑删除操作
2016-11-29 00:00
162 查看
摘要: ListView和ExpandableListView的侧滑删除操作
本案例主要实现了ListView和ExpandableListView的侧滑删除操作功能
效果图:
代码:
ExpandableListView的Adapter
注:更新修复侧滑删除报错。
源码下载: https://github.com/DickyQie/ListViewExpandableListViewDelete
本案例主要实现了ListView和ExpandableListView的侧滑删除操作功能
效果图:
代码:
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<UserInfo> list; public MyElvAdapter(Context context, ListView listView, List<UserInfo> 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); } }
注:更新修复侧滑删除报错。
源码下载: https://github.com/DickyQie/ListViewExpandableListViewDelete
相关文章推荐
- android--------ListView和ExpandableListView的侧滑删除操作
- android--------ListView和ExpandableListView的侧滑删除操作
- Android – ListView 中添加按钮,动态删除添加ItemView的操作
- Android使用SwipeMenuListView 高仿QQ、微信侧滑删除--详解
- Android 侧滑删除 SwipeMenuListView
- Android_自定义控件_ListView侧滑删除
- Android 仿QQListView侧滑删除
- android-ExpandableListView动态操作出现的一系列问题
- 【android自定义控件】android ListView添加侧滑删除
- Android ListView 侧滑效果实现(滑动展开、滑动删除)
- android 滑动删除等操作 SwipeListView github开源项目使用
- android 仿微信侧滑删除SwipeListView实例
- Android ListView侧滑item,仿QQ删除效果
- Android的ListView多选删除操作实现代码
- Android – ListView 中添加按钮,动态删除添加ItemView的操作
- android listview的创建及行删除操作
- Android listview 侧滑 SwipeListView 详解 实现微信,QQ等滑动删除效果
- expandableListview实现侧滑删除
- Android ListView 侧滑效果实现(滑动展开、滑动删除)
- Android 仿QQlistview侧滑删除