做一个安卓实验,读取通讯录并添加联系人。在添加联系人的时候,发现添加的联系人信息是空的
public class AddContactActivity extends AppCompatActivity {
private EditText nameEdit;
private EditText phonenumberEdit;
private Button add;
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_contact);
nameEdit = (EditText) findViewById(R.id.name);
phonenumberEdit = (EditText) findViewById(R.id.phonenumber);
add = (Button) findViewById(R.id.add);
toolbar = (Toolbar) findViewById(R.id.toolbar_addcontact);
//Toolbar
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
add.setOnClickListener(new View.OnClickListener() {
String name = nameEdit.getText().toString().trim();
String phonenumber = phonenumberEdit.getText().toString();
@Override
public void onClick(View v) {
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);
//插入具体的数据到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 phonevalue = new ContentValues();
phonevalue.put("mimetype", "vnd.android.cursor.item/phone_v2");
phonevalue.put("data1",phonenumber);
phonevalue.put("raw_contact_id", contact_id);
resolver.insert(datauri, phonevalue);
Toast.makeText(AddContactActivity.this, "添加成功", Toast.LENGTH_SHORT).show();
}
});
}
}
但是把上面要添加的联系人信息由从EditText中读取改为直接给定时,发现联系人信息可以添加了
public class AddContactActivity extends AppCompatActivity {
private EditText nameEdit;
private EditText phonenumberEdit;
private Button add;
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_contact);
nameEdit = (EditText) findViewById(R.id.name);
phonenumberEdit = (EditText) findViewById(R.id.phonenumber);
add = (Button) findViewById(R.id.add);
toolbar = (Toolbar) findViewById(R.id.toolbar_addcontact);
//Toolbar
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
add.setOnClickListener(new View.OnClickListener() {
String name = nameEdit.getText().toString().trim();
String phonenumber = phonenumberEdit.getText().toString();
@Override
public void onClick(View v) {
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);
//插入具体的数据到data表,数据类型,data1具体的数据
ContentValues namevalue = new ContentValues();
namevalue.put("mimetype", "vnd.android.cursor.item/name"); // 指定数据类型
namevalue.put("data1", "Android");
namevalue.put("raw_contact_id", contact_id); // 一定要记得指定数据属于哪个联系人
resolver.insert(datauri, namevalue);
ContentValues phonevalue = new ContentValues();
phonevalue.put("mimetype", "vnd.android.cursor.item/phone_v2");
phonevalue.put("data1","1234567890");
phonevalue.put("raw_contact_id", contact_id);
resolver.insert(datauri, phonevalue);
Toast.makeText(AddContactActivity.this, "添加成功", Toast.LENGTH_SHORT).show();
}
});
}
}
不明白为什么,求大佬解答啊