0
我想從我的電話簿中獲取聯繫人並保存聯繫人的姓名和號碼。我想保存3個聯繫人。爲此,3 EditTexts和各自的按鈕在那裏。點擊按鈕時,用戶被定向到聯繫人,用戶可以選擇所需的聯繫人。但是,我無法實現所有3個編輯文本的聯繫人獲取功能。 當我只用一個聯繫人實現這一點,代碼工作正常。但是,如何在多個聯繫人的情況下實現這一點。 Contact.java無法通過不同按鈕保存多個聯繫人
package com.kamal.sos10;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.content.Intent;
import android.widget.Toast;
public class Contact extends AppCompatActivity {
EditText msg,editText2,editText3,editText4;
Button con1,con2,con3;
static final int PICK_CONTACT = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contact);
msg=(EditText)findViewById(R.id.msg);
editText2=(EditText)findViewById(R.id.editText2);
editText3=(EditText)findViewById(R.id.editText3);
editText4=(EditText)findViewById(R.id.editText4);
con1=(Button)findViewById(R.id.con1);
con2=(Button)findViewById(R.id.con2);
con3=(Button)findViewById(R.id.con3);
con1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.putExtra("extra_text1", "1");
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
if (intent.resolveActivity(Contact.this.getPackageManager()) != null) {
startActivityForResult(intent, PICK_CONTACT);
}
}
});
con2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.putExtra("extra_text2", "2");
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
if (intent.resolveActivity(Contact.this.getPackageManager()) != null) {
startActivityForResult(intent, PICK_CONTACT);
}
}
});
con3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.putExtra("extra_text3", "3");
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
if (intent.resolveActivity(Contact.this.getPackageManager()) != null) {
startActivityForResult(intent, PICK_CONTACT);
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
String text1 = getIntent().getStringExtra("extra_text1");
Toast.makeText(Contact.this,text1,Toast.LENGTH_SHORT).show();
if (requestCode == PICK_CONTACT) {
if (resultCode == this.RESULT_OK) {
contactPicked(data);
}
}
}
private void contactPicked(Intent data) {
ContentResolver cr = this.getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
cur.moveToFirst();
try {
// getData() method will have the Content Uri of the selected contact
Uri uri = data.getData();
//Query the content uri
cur = this.getContentResolver().query(uri, null, null, null, null);
cur.moveToFirst();
// column index of the contact ID
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
// column index of the contact name
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
// column index of the phone number
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while (pCur.moveToNext()) {
String phone = pCur.getString(
pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)).replaceAll(" ", "");
/*String text1 = getIntent().getStringExtra("extra_text1");
Toast.makeText(Contact.this,text1,Toast.LENGTH_SHORT).show();
if (text1.equals("1")) {
editText2.setText(phone);
}
String text2 = getIntent().getStringExtra("extra_text2");
if (text2 == "2") {
editText3.setText(phone);
}
String text3 = getIntent().getStringExtra("extra_text3");
if (text3 == "3") {
editText4.setText(phone);
*/}
pCur.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
如何在各自的設定手機沒有獲取從電話簿edittext?就像我想設置edittext2通過使用con1等獲取的聯繫人 –
@KamalKumar檢查最新的編輯,如果這解決了您的問題,請接受答案:) – Jaydroid
謝謝。現在它工作正常。 –