• Android 利用内容提供者添加联系人的操作


    上文中《Android 获取系统的联系人》主要介绍了怎样获取系统联系人并实战了一下,本文将介绍如何添加一条联系人信息

    添加联系人

    1. 添加raw_contacts表,添加一条联系人的id

    2. 操作data表,插入联系人的数据,每个联系人数据都对应一列 raw_contact_id

    新建项目,布局文件代码如下:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity" >
    
        <EditText
            android:id="@+id/et_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入联系人的姓名" />
    
        <EditText
            android:id="@+id/et_phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入联系人的电话" />
    
        <EditText
            android:id="@+id/et_email"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入联系人的邮箱" />
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="save"
            android:text="提交数据" />
    
    </LinearLayout>

    添加相关代码

    package com.wuyudong.addcontact;
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.ContentResolver;
    import android.content.ContentValues;
    import android.database.Cursor;
    import android.text.TextUtils;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private EditText et_name;
        private EditText et_phone;
        private EditText et_mail;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            et_name = (EditText) findViewById(R.id.et_name);
            et_phone = (EditText) findViewById(R.id.et_phone);
            et_mail = (EditText) findViewById(R.id.et_email);
        }
    
        public void save(View view) {
    
            String name = et_name.getText().toString().trim();
            String phone = et_phone.getText().toString().trim();
            String email = et_mail.getText().toString().trim();
    
            if (TextUtils.isEmpty(name) || TextUtils.isEmpty(phone)
                    || TextUtils.isEmpty(email)) {
                Toast.makeText(this, "内容不能为空", 0).show();
            } else {
                // 保存数据
                ContentResolver resolver = getContentResolver();
                Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
                Uri datauri = Uri.parse("content://com.android.contacts/data");
                Cursor cursor = resolver.query(uri, null, null, null, null);
                int count = cursor.getCount();
                ContentValues values = new ContentValues();
                int contact_id = count + 1;
                values.put("contact_id", contact_id);
                resolver.insert(uri, values);
                // 2.插入具体的数据到data表,数据类型,data1具体的数据
                ContentValues namevalue = new ContentValues();
                namevalue.put("mimetype", "vnd.android.cursor.item/name"); // 指定数据类型
                namevalue.put("data1", name);
                namevalue.put("raw_contact_id", contact_id); // 一定要记得指定数据属于哪个联系人
                resolver.insert(datauri, namevalue);
    
                ContentValues emailvalue = new ContentValues();
                emailvalue.put("mimetype", "vnd.android.cursor.item/email_v2");
                emailvalue.put("data1", email);
                emailvalue.put("raw_contact_id", contact_id);
                resolver.insert(datauri, emailvalue);
    
                ContentValues phonevalue = new ContentValues();
                phonevalue.put("mimetype", "vnd.android.cursor.item/phone_v2");
                phonevalue.put("data1", phone);
                phonevalue.put("raw_contact_id", contact_id);
                resolver.insert(datauri, phonevalue);
                
                Toast.makeText(this, "添加成功", 0).show();
    
            }
    
        }
    
    }
  • 相关阅读:
    NSWindow,一些有的沒的
    IT单身男士必看【找女友单身程序员】
    Base 64 Encoding 编码
    如何成为一名优秀的C程序员
    iOS学习笔记—ObjectiveC 委托、非正式协议、正式协议
    程序员学习能力提升三要素
    工程师如何不被PM欺负
    最常被程序员们谎称读过的计算机书籍
    一些重要的算法
    asp调用.Net 托管代码
  • 原文地址:https://www.cnblogs.com/wuyudong/p/5596103.html
Copyright © 2020-2023  润新知