SwipeMenuListview侧滑删除

来源:互联网 发布:js 数组方法 编辑:程序博客网 时间:2024/05/16 06:06

一 使用SwipemenuListview控件,首先需要引入下面的依赖:

compile 'com.baoyz.swipemenulistview:library:1.3.0'

<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());        }    }}
好的,到这里已经全部结束了。

0 0