为什么按意图添加联系人不起作用?

时间:2018-09-08 09:02:32

标签: android

我已经添加了permission以便在Manifest.xml中写入联系人,但是该联系人并未保存。

final EditText name = findViewById(R.id.name);
final EditText number = findViewById(R.id.number);

Button add = findViewById(R.id.add);
add.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
        intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
        intent
          .putExtra(ContactsContract.Intents.Insert.PHONE,number.getText())
          .putExtra(ContactsContract.Intents.Insert.PHONE_TYPE,ContactsContract.CommonDataKinds.Phone.TYPE_WORK)
          .putExtra(ContactsContract.Intents.Insert.NAME,name.getText());

        startActivity(intent);
    }
});

emulator中,当我单击“添加”按钮时,姓名和电话号码将不固定,每个字段均为空白。该如何解决?

1 个答案:

答案 0 :(得分:0)

变量namenumber可能没有在该范围内定义...

Button add = findViewById(R.id.add);
add.setOnClickListener(new View.OnClickListener() {

    final EditText name = findViewById(R.id.name);
    final EditText number = findViewById(R.id.number);

    @Override
    public void onClick(View view) {
        Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
        intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
        intent    
        .putExtra(ContactsContract.Intents.Insert.PHONE, number.getText().toString())
    .putExtra(ContactsContract.Intents.Insert.PHONE_TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK)
        .putExtra(ContactsContract.Intents.Insert.NAME, name.getText().toString());
        startActivity(intent);
    }
});