Android通讯录开发之删除功能的实现方法

2019-12-10 20:12:50王旭

           MeetingContactActivity.this,
           rawContact);
        } else {
         MyDataBase.updateContactById(
           MeetingContactActivity.this,
           rawContact);
        }
        break;
       }
      }
      // 将需要删除的联系人保存下来
      deleteContacts.add(contact);
     }
    }
    Message msg = new Message();
    msg.obj = deleteContacts;
    msg.what = DELETE_COMPLETE;
    handler.sendMessage(msg);
   };
  }.start();

 

 }


deleteContacts是用来保存需要删除的联系人,把它赋给msg.obj,再通过handler将消息放入消息队列,最终在handler的handleMessage方法进行删除操作。

 


handler处理代码:
这里把传递过来list在contactList遍历删除,然后在msg.what为DELETE_COMPLETE的分支进行通知列表刷新。

复制代码
private Handler handler = new Handler() {
  @Override
  public void handleMessage(Message msg) {
   if (msg.obj != null) {
    ArrayList<Contact> deleteContacts = (ArrayList<Contact>) msg.obj;
    for (Contact contact : deleteContacts) {
     map_NumberSelected.remove(contact.getId());
     contactList.remove(contact);
    }
   }
   switch (msg.what) {
   case LOAD_CONTACT_FINISHED:
    // 判断是否为空
    if (contactList == null || contactList.size() == 0) {
     syncLayout.setVisibility(View.VISIBLE);
     bottomLayout.setVisibility(View.GONE);
     listView.setVisibility(View.GONE);
    } else {
     syncLayout.setVisibility(View.GONE);