使用TextView从通讯簿中获取联系人

时间:2014-03-22 04:08:35

标签: java android android-edittext contacts

我是Android Dev的新手,在尝试让editText取出一个联系人时遇到了问题。我已经创建了3个editText,每个onClickListener()都会联系,并会向所选联系人发送短信。

http://imgur.com/IbAT1hX

我已经尝试了一些我在网上找到的东西,但它们都崩溃了,我真的不明白我在做什么。

我知道我必须创建一个 contact.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } });

EditText

我的另一个问题是,因为我需要为每个EditText选择一个联系人,我是否必须复制三个{{1}}的相同代码?

选择联系人后,我只想显示联系人的姓名。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

你可以像我在我的一个应用程序中那样做(我按下按钮点击你并使用你的edittext) 打开联系人

button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                 Intent intent= new Intent(Intent.ACTION_PICK,  Contacts.CONTENT_URI);

        startActivityForResult(intent, PICK_CONTACT);

            }
        });

然后在用户选择后,您可以在OnActivityResult方法中获取结果并处理联系人uri以加载联系人的详细信息

@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
  super.onActivityResult(reqCode, resultCode, data);

  switch (reqCode) {
    case (PICK_CONTACT) :
      if (resultCode == Activity.RESULT_OK) {
        Uri contactData = data.getData();
        Cursor c =  managedQuery(contactData, null, null, null, null);
        if (c.moveToFirst()) {
          String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
          // TODO Fetch other Contact details as you want to use
              Set the name of contact in your editText

        }
      }
      break;
  }
}