【问题标题】:Store contacts' name and phones into an ArrayList将联系人的姓名和电话存储到 ArrayList 中
【发布时间】:2016-09-22 22:12:09
【问题描述】:

我无法使任何解决方案发挥作用...结果始终是应用程序崩溃。我成功地制作了一个 listView,添加了项目并获得了选定的项目,但我错过了将列表中的元素设为联系人姓名而不是随机姓名。

一旦被选中,我会询问号码并在另一个活动中将它们PutExtra。

编辑:按照建议,这是我正在尝试使用的代码:

            Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
        while (phones.moveToNext())
        {
            String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

        }
        phones.close();

我会将它插入到每个联系人的 for 循环中,每次将字符串 name 和 phoneNumber 添加到 ArrayList。但是,当我按下应该运行此代码的按钮(并且该按钮工作正常)时,我会从 Android 监视器中得到一长串错误(这是第一行):

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)

我已将权限添加到清单中:

    <uses-permission android:name="android.permission.READ_CONTACTS" />

你能帮帮我吗?谢谢!

附:我已经尝试了来自this previus 主题的多种解决方案,但它们都不适合我......

【问题讨论】:

  • SO 不是代码编写服务。如果您想在问题中包含您编写代码的尝试以及遇到的错误,我相信这里有人会很乐意提供帮助。
  • 在此期间,请使用Tour 并阅读Help Center 中的文档。特别是,您应该在 SO 阅读有关 how to ask a good question 以及 on topic 的哪些类型的问题。您可能还会发现StackOverflow question checklist 非常有用。
  • 与其解释您已搜索解决方案并直接要求代码,不如提供您的错误和您拥有的代码。我已经编辑了您的帖子,但“没有任何效果,我的应用程序崩溃”不是问题。
  • 感谢您的编辑和澄清,这是我的第一篇文章,所以请给我一些时间来适应 SO 的工作方式。我将更新我的帖子添加代码和错误。谢谢!

标签: android arraylist android-contacts contactscontract


【解决方案1】:

已解决


这完全是应用权限的问题。使用 android 6.0 Marshmallow,您必须直接在 Java 代码中请求权限(在 onCreate 方法期间);稍后我会发布一些示例代码。


非常感谢我的朋友 Blitzuda 帮助解决了我的问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2011-03-05
    相关资源
    最近更新 更多