SwipeMenuListView的使用

前面项目中导入了SwipeMenuListView三方库,接下来就进行使用。相较于普通listview,只是多了配置左滑过来的按钮以及它的监听。

1.设置左滑按钮,并配置在listview上。

//设置左滑按钮
SwipeMenuCreator creator=new SwipeMenuCreator() {
    @Override
   public void create(SwipeMenu menu) {
         SwipeMenuItem openItem = new SwipeMenuItem(Address_book.this);
         openItem.setBackground(new ColorDrawable(Color.RED));
         openItem.setWidth(dp2px(90));
         openItem.setTitle("删除");
         openItem.setTitleSize(20);
         openItem.setTitleColor(Color.WHITE);
         menu.addMenuItem(openItem);
         }
};
listview.setMenuCreator(creator);

2.创建数据和适配器,与列表匹配

//从数据库获取数据
mlist=friendManageDb.getAllFriend();
for (int i = 0; i < mlist.size(); i++) {
    Map<String,Object>map=new HashMap<>();
    map.put("name", mlist.get(i).getName());//显示好友名字
    map.put("mailID", mlist.get(i).getMailID());//显示好友邮箱账号
    mStringList.add(map);
}
//初始化适配器
listAdapter=new SimpleAdapter(Address_book.this,
        mStringList,
        R.layout.item1,
        new String[]{"name","mailID"},
        new int[]{R.id.add_name,R.id.add_address});
     //返回主线程操作listview
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                   listview.setAdapter(listAdapter);//listview与适配器联系起来
            }
});

3.设置列表item的监听

/**
  * 列表点击事件
  */
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> adapterView, View view,  int position, long id) {
        // TODO Auto-generated method stub
        try{
            Map<String,Object> map=new HashMap<>();
            map=mStringList.get(position);//得到该位置的联系人
            List valueList = new ArrayList(map.values());//获取map中的值,由于mailID保存在第二个位置,所以是get(1)
            Intent intent=new Intent();
            intent.putExtra("mailID",valueList.get(1).toString());
            intent.putExtra("isfriend",true);
            intent.setClass(Address_book.this,Write_mail.class);
            startActivity(intent);
         }catch(Exception e){
            e.printStackTrace();
      }
      }
});

4.设置左滑按钮的监听

/**
 * 监听事件,是滑动的那个按钮监听,不是列表监听
*/
listview.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
    //index的值就是在SwipeMenu依次添加SwipeMenuItem顺序值,类似数组的下标。
    //从0开始,依次是:0、1、2、3...
    switch (index) {
        case 0:
                Map<String,Object> map=new HashMap<>();
                map=mStringList.get(position);//得到该位置的联系人
                List valueList = new ArrayList(map.values());//获取map中的值,由于mailID保存在第二个位置,所以是get(1)
                String mailID=valueList.get(1).toString();
                //由于访问数据库所以使用线程
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                           int success=friendManageDb.delectFriend(mailID);
                           if(success==0){
                              Message msg=new Message();
                              msg.what=0;
                              handler.sendMessage(msg);
                            }
                           else{
                              Message msg=new Message();
                              msg.what=1;
                              handler.sendMessage(msg);
                            }
                      }
                  }).start();
                  break;
             }
             return false;
     }
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值