【问题标题】:How to extract phone number from the selected contact?如何从选定的联系人中提取电话号码?
【发布时间】:2012-05-17 10:53:05
【问题描述】:
public class ImportContactsActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

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

        public void onClick(View view) {

            Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
            startActivityForResult(intent, 1);
        }
    });
}

public void onActivityResult(int reqCode, int resultCode, Intent data) {

    super.onActivityResult(reqCode, resultCode, data);

    switch (reqCode) {
    case (1) :
      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.getColumnIndexOrThrow(People.NAME));
          TextView contactView = (TextView) findViewById(R.id.contactView);
          contactView.setText(name.toString());
        }
      }
      break;
    }
}

我正在开发一个 Android 应用程序,我正在将手机联系人导入我的应用程序,用户点击所选联系人后,联系人将显示在 TextView 中,电话号码将存储在 sharedpreferences 中...可能我知道如何实现吗?谢谢

【问题讨论】:

    标签: java android android-contacts


    【解决方案1】:

    你试过了吗?

    Uri contactData = data.getData();
    Cursor cursor =  managedQuery(contactData, null, null, null, null);
    cursor.moveToFirst();
          String name = cursor.getString(cursor.getColumnIndexOrThrow(People.NAME));
          String number = cursor.getString(cursor.getColumnIndexOrThrow(People.NUMBER));
          String email = cursor.getString(cursor.getColumnIndexOrThrow(People.PRIMARY_EMAIL_ID));
          contactName.setText(name);
          contactNumber.setText(number);
          contactEmail.setText(email);
    

    用于存储在SharedPreferences..

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putString("phonenumber", number);
    
      // Commit the edits!
      editor.commit();
    

    以上代码仅供理解..

    【讨论】:

    • 感谢您的信息,我需要在清单中添加一些内容吗?
    • 是的,添加权限..
    • 我按照你的参考,但是当我点击其中一个联系人时,它会强制关闭我的应用程序...
    • 同样,我正在考虑就此事提出一个新问题。
    【解决方案2】:

    以下链接的可能副本

    get contact info from android contact picker

    参考上面的链接。已经详细解答了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-24
      • 2012-06-13
      • 1970-01-01
      相关资源
      最近更新 更多