效果
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入名字"
/>
<EditText
android:id="@+id/phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入手机号"
/>
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入邮箱"
/>
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="add"
android:onClick="addOnClick"
/>
</LinearLayout>
mainactivity书写
package com.ht.demo01;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText name;
private EditText phone;
private Button add;
private EditText email;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
name = (EditText) findViewById(R.id.name);
phone = (EditText) findViewById(R.id.phone);
email = (EditText) findViewById(R.id.email);
add = (Button) findViewById(R.id.add);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String nameStr = name.getText().toString();
String phoneStr = phone.getText().toString();
String emailStr = email.getText().toString();
ContentResolver cr = getContentResolver();
//创建一个空的contentvalues
ContentValues values = new ContentValues();
//向raw_contacts表中插入一个空的数据,目的是获得系统返回的rawcontactsid
Uri rawContactsUri = cr.insert(ContactsContract.RawContacts.CONTENT_URI, values);
long rawContactsId = ContentUris.parseId(rawContactsUri);
values.clear();
//添加姓名(对应data表中一行)
//先往data表中添加一次rawcontactsid,建立data表和rawcontacts表的联系
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactsId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
//添加联系人的姓名,一般都是存在data表的data1字段
values.put("data1", nameStr);
cr.insert(ContactsContract.Data.CONTENT_URI, values);
//添加电话(对应data表中新起的一行)
values.clear();
//因为是data表中新的一行,还是需要把rawcontactid再添加一遍的
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactsId);
//添加内容类型列
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
//添加电话,一般都是存在data表的data1字段
values.put("data1", phoneStr);
cr.insert(ContactsContract.Data.CONTENT_URI, values);
//添加邮箱(对应data表中新起的一行)
values.clear();
//因为是data表中新的一行,还是需要把rawcontactid再添加一遍的
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactsId);
//添加内容类型列
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
//添加电话,一般都是存在data表的data1字段
values.put("data1", emailStr);
cr.insert(ContactsContract.Data.CONTENT_URI, values);
}
});
}
}
注意:
不要忘记添加权限,区分大小写
时间: 2024-10-14 16:28:23