zoukankan      html  css  js  c++  java
  • Android 编辑联系人

        /**
         * @brief 显示联系人编辑界面
         * */
        public void editContact(String contactId,Context context) {
    
            if (context == null || contactId == null) {
                return ;
            }
    
            Uri uri = getContactUri(contactId,context);
            if (uri != null) {
    
                Intent editIntent = new Intent(Intent.ACTION_EDIT);
                editIntent.setDataAndType(uri,ContactsContract.Contacts.CONTENT_ITEM_TYPE);
    //            editIntent.putExtra("finishActivityOnSaveCompleted", true);
                context.startActivity(editIntent);
    
            } else {
    
            }
        }
    
        /**
         * 修改联系人信息
         * */
        public void updateContact(Contact contactOld, Contact contactNew) {
            Log.w(TAG, "**update start**");
            String id = getContactID(contactOld.getName());
            if(id.equals("0")) {
                Log.d(TAG, contactOld.getName()+" not exist.");
            }/* else if(contactNew.getName().trim().equals("")){
                Log.d(TAG, "contact name is empty. exit.");
            } else if(!getContactID(contactNew.getName()).equals("0")){
                Log.d(TAG, "new contact name already exist. exit.");
            }*/ else {
    
                ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
    
                //update name
    //            ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
    //                    .withSelection(COLUMN_CONTACT_ID + "=? AND " + COLUMN_MIMETYPE + "=?",
    //                            new String[]{id, MIMETYPE_STRING_NAME})
    //                    .withValue(COLUMN_NAME, contactNew.getName())
    //                    .build());
                Log.d(TAG, "update name: " + contactNew.getName());
    
                // photo
                ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                        .withSelection(COLUMN_CONTACT_ID + "=? AND " + COLUMN_MIMETYPE + "=?",
                                new String[]{id, MIMETYPE_STRING_PHOTO})
                        .withValue(COLUMN_PHOTO, contactNew.getPhotoData())
                        .build());
    
                // web
                ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                        .withSelection(COLUMN_CONTACT_ID + "=? AND " + COLUMN_MIMETYPE + "=?",
                                new String[]{id, MIMETYPE_STRING_WEB})
                        .withValue(COLUMN_WEB,contactNew.getHomePage())
                        .withValue(COLUMN_WEB_TYPE, contactNew.getHomePage())
                        .build());
    
                // postal
                ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                        .withSelection(COLUMN_CONTACT_ID + "=? AND " + COLUMN_MIMETYPE + "=?",
                                new String[]{id, MIMETYPE_STRING_ADDRESS})
                        .withValue(COLUMN_POSTAL,contactNew.getAddress())
                        .withValue(COLUMN_POSTAL_TYPE, contactNew.getAddressType())
                        .build());
    
                //update number
                if(!contactNew.getNumber().trim().equals("")) {
                    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                            .withSelection(COLUMN_CONTACT_ID + "=? AND " + COLUMN_MIMETYPE + "=? AND " + COLUMN_NUMBER_TYPE + "=?",
                                    new String[]{id, MIMETYPE_STRING_PHONE,contactNew.getNumberType()})
                            .withValue(COLUMN_NUMBER, contactNew.getNumber())
                            .withValue(COLUMN_NUMBER_TYPE, contactNew.getNumberType())
                            .build());
                    Log.d(TAG, "update number: " + contactNew.getNumber());
                }
    
                // fax
                if(!contactNew.getNumber().trim().equals("")) {
                    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                            .withSelection(COLUMN_CONTACT_ID + "=? AND " + COLUMN_MIMETYPE + "=? AND " + COLUMN_NUMBER_TYPE + "=?",
                                    new String[]{id, MIMETYPE_STRING_PHONE,contactNew.getFaxType()})
                            .withValue(COLUMN_NUMBER, contactNew.getFax())
                            .withValue(COLUMN_NUMBER_TYPE, contactNew.getFaxType())
                            .build());
                    Log.d(TAG, "update fax: " + contactNew.getNumber());
                }
    
    
                //update email if mail
                if(!contactNew.getEmail().trim().equals("")) {
                    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                            .withSelection(COLUMN_CONTACT_ID + "=? AND " + COLUMN_MIMETYPE + "=?",
                                    new String[]{id, MIMETYPE_STRING_EMAIL})
                            .withValue(COLUMN_EMAIL, contactNew.getEmail())
                            .withValue(COLUMN_EMAIL_TYPE, contactNew.getEmailType())
                            .build());
                    Log.d(TAG, "update email: " + contactNew.getEmail());
                }
    
                try {
                    contentResolver.applyBatch(ContactsContract.AUTHORITY, ops);
                    Log.d(TAG, "update success");
                } catch (Exception e) {
                    Log.d(TAG, "update failed");
                    Log.e(TAG, e.getMessage());
                }
            }
            Log.w(TAG, "**update end**");
        }
  • 相关阅读:
    实现自己的Linq to Sql
    [分享] 浅谈项目需求变更管理
    【分享】老程序员的经验和价值在哪里?
    程序员是自己心中的“上帝”
    [分享]解析“程序员的十大技术烦恼”
    【分享】帮助你早些明白一些道理
    “风雨20年”的20条精辟编程经验
    【分享】 优秀程序员的代码是“活的”
    给开发人员培训时的语录
    【分享】SQL Server优化50法
  • 原文地址:https://www.cnblogs.com/buakaw/p/8966121.html
Copyright © 2011-2022 走看看