【问题标题】:Pick one of the contact numbers选择其中一个联系电话
【发布时间】:2012-03-19 14:37:00
【问题描述】:

我正在使用下面的代码来选择一个联系号码,但是有些联系人有多个号码,我该如何选择一个联系号码?

Cselect.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
              startActivityForResult(intent, 0);     
            }
            });

【问题讨论】:

标签: android contact


【解决方案1】:

在结果中,你应该得到一个 Uri。从这里,您将能够获取一个光标,然后遍历光标以获取您需要的信息。我建议您将光标转储到日志中,以便使用 DatabaseUtils 类查看返回的内容。

以下是如何检索光标并对其进行迭代的 sn-p:

    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));
            txtContacts.setText(name);
        }
    }

【讨论】:

  • 嗨。我想让用户选择数字,而不是我
  • 那我只需要显示你自己的 AlertDialog 和你从上面的 Cursor 中检索到的数字,用户可以从中选择吗?
  • 如果你不介意,你能帮我解决一下吗...如何进行对话?这是我的代码pastebin.com/8UxwdV4g
  • 一旦您有了想要显示的电话号码,只需创建一个附有列表的 AlertDialog。代码显示在文档developer.android.com/guide/topics/ui/dialogs.html#AddingAList
  • 是的,但我的意思是如何获得数字?我试过: int phoneIdx = c.getColumnIndex(name); String phoneNumber = c.getString(phoneIdx); - 名称 - 是我从光标名称中得到的名称 = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));你有我吗?对不起,我对光标不太擅长
猜你喜欢
  • 2012-08-20
  • 2018-01-08
  • 2016-10-23
  • 2014-02-07
  • 2012-05-14
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
相关资源
最近更新 更多