一 使用SwipemenuListview控件,首先需要引入下面的依赖:
compile 'com.baoyz.swipemenulistview:library:1.3.0'![](https://img-blog.csdn.net/20161118165647927)
<com.baoyz.swipemenulistview.SwipeMenuListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="match_parent"/>
Activity:
public class MainActivity extends AppCompatActivity { SwipeMenuListView listView; MyAdapter adapter; private List<ApplicationInfo> mAppList; ArrayList<String> data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (SwipeMenuListView) findViewById(R.id.listview); mAppList = getPackageManager().getInstalledApplications(0); data = new ArrayList<>(); for (int i = 0; i <20 ; i++) { data.add("AAA" + i); } adapter = new MyAdapter(data,this); listView.setAdapter(adapter); SwipeMenuCreator creator = new SwipeMenuCreator() { @Override public void create(SwipeMenu menu) { switch (menu.getViewType()) { case 0: createMenu2(menu); break; } } //设置滑出菜单的属性 private void createMenu2(SwipeMenu menu) { SwipeMenuItem item2 = new SwipeMenuItem( getApplicationContext()); item2.setBackground(R.color.allTypeItemTextColor); item2.setWidth(adapter.dp2px(50)); item2.setTitle("删除"); item2.setTitleColor(R.color.colorPrimary); item2.setTitleSize(15); menu.addMenuItem(item2); } }; listView.setMenuCreator(creator); listView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(int position, SwipeMenu menu, int index) { ApplicationInfo item = mAppList.get(position); mAppList.remove(data.get(position)); adapter.delete(position); listView.setAdapter(adapter); adapter.notifyDataSetChanged(); Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show(); return false; } }); } public class MyAdapter extends BaseAdapter{ ArrayList<String> data; Context context; public MyAdapter(ArrayList<String> data,Context context) { this.data = data; this.context = context; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int i) { return data.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { MyHolder holder = null; if (view == null){ view = LayoutInflater.from(context).inflate(R.layout.item,null); holder = new MyHolder(); holder.tv = (TextView) view.findViewById(R.id.item_tv); view.setTag(holder); }else { holder = (MyHolder) view.getTag(); } holder.tv.setText(data.get(i)); return view; } class MyHolder{ TextView tv; } public void delete(int p){//设置删除方法 data.remove(p); notifyDataSetChanged(); listView.setSelection(p); } //设置滑动删除按钮的宽高属性的方法 private int dp2px(int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics()); } } }
好的,到这里已经全部结束了。