break;
}
item.setIcon(R.drawable.select_all);
selectAllContacts();
}
break;
case R.id.delete_item: // 删除
if (count == 0) {
Toast.makeText(this, “您还没有选择任何联系人”, Toast.LENGTH_SHORT).show();
break;
}
showDeleteDialog(this, “您确定要删除吗”);
isAllChecked = false;
selectAllItem.setIcon(R.drawable.select_all_not);
break;
case R.id.sync_item:
Intent fresh_intent = new Intent(this, CloudSyncActivity.class);
if (flag) {// 如果是会议
fresh_intent.putExtra(“number”, meetingNumber);
}
startActivityForResult(fresh_intent, CLOUD_SYNC);
break;
default:
break;
}
return false;
}
// 刷新菜单项全选
private void refreshSelectAllItemIcon() {
for (String contactId : map_NumberSelected.keySet()) {
if (!map_NumberSelected.get(contactId)) {
isAllChecked = false;
selectAllItem.setIcon(R.drawable.select_all_not);
break;
}
isAllChecked = true;
selectAllItem.setIcon(R.drawable.select_all);
}
}
提示删除的对话框
/** 显示确认删除对话框 **/
public void showDeleteDialog(Context context, String msg) {
final Dialog dialog = new Dialog(context, R.style.MyDialog);
View view = LayoutInflater.from(context).inflate(R.layout.back_dialog,
null);
TextView msg_tv = (TextView) view.findViewById(R.id.msg);
msg_tv.setText(msg);
Button sure = (Button) view.findViewById(R.id.sure);
Button cancle = (Button) view.findViewById(R.id.cancle);
dialog.setContentView(view);
sure.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
deleteContacts();
dialog.dismiss();
}
});
cancle.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
下面是删除操作:
这里只关注实现删除的脉路,其中有些代码是业务逻辑需要可以稍微看一下就可以了
// 删除选中的联系人
public void deleteContacts() {
DialogHelp.getInstance().showHttpDialog(this, R.string.wait_for_while,
getString(R.string.deleting_contact));
new Thread() {
@Override
public void run() {
ArrayList deleteContacts = new ArrayList();
for (Contact contact : contactList) {
boolean isselected = map_NumberSelected
.get(contact.getId());
if (isselected) {
for (RawContact rawContact : rawList) {
if (contact.getUserId() == rawContact.getUserId()) { // 是同一个id
if (contact.getNumber() == rawContact
.getPhone1()) {
rawContact.setPhone1(null);
} else if (contact.getNumber() == rawContact
.getPhone2()) {
rawContact.setPhone2(null);
} else if (contact.getNumber() == rawContact
.getTelephone()) {
rawContact.setTelephone(null);
}
if ((rawContact.getPhone1() == null || “”
.equals(rawContact.getPhone1()))
&& (rawContact.getPhone2() == null || “”
.equals(rawContact.getPhone2()))
&& (rawContact.getTelephone() == null || “”
.equals(rawContact
.getTelephone()))) {
MyDataBase.deleteContact(
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方法进行删除操作。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img-bkFpMivZ-1711172333070)]
[外链图片转存中…(img-1t48rOTr-1711172333070)]
[外链图片转存中…(img-mNa4KJ93-1711172333071)]
[外链图片转存中…(img-KIDYRjsI-1711172333071)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-325c8ipl-1711172333072)]