Android 将联系人的姓名和电话存储到ArrayList中

Android 将联系人的姓名和电话存储到ArrayList中,android,arraylist,android-contacts,contactscontract,Android,Arraylist,Android Contacts,Contactscontract,我无法使任何解决方案起作用。。。结果总是导致应用程序崩溃。我成功地创建了一个列表视图,添加了项目并获得了所选项目,但是我没有将列表中的元素设置为联系人的姓名,而不是随机的姓名 一旦被选中,我将询问号码并将其放入另一个活动中 编辑:正如建议的那样,以下是我正在尝试使用的代码: Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,

我无法使任何解决方案起作用。。。结果总是导致应用程序崩溃。我成功地创建了一个列表视图,添加了项目并获得了所选项目,但是我没有将列表中的元素设置为联系人的姓名,而不是随机的姓名

一旦被选中,我将询问号码并将其放入另一个活动中

编辑:正如建议的那样,以下是我正在尝试使用的代码:

            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" />
你能帮帮我吗?谢谢

另外,我尝试了previus topic中的多种解决方案,但没有一种适合我…

解决了

这都是应用程序权限的问题。使用安卓6.0棉花糖,您必须在onCreate方法期间直接在Java代码中请求权限;稍后我将发布一些示例代码


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

因此,它不是一个代码编写服务。如果您想在问题中包括您在编写代码方面的尝试,以及您遇到的错误,我相信这里会有人乐于提供帮助。同时,请阅读中的文档。特别是,你应该阅读关于以及在这里有什么样的问题。您可能也会发现这些代码非常有用。与其解释您已经搜索了解决方案并直接请求代码,不如提供您的错误和您拥有的代码。我已经编辑了你的文章,但没有任何效果,我的应用程序崩溃不是问题。谢谢你的编辑和澄清,这是我的第一篇文章,所以请给我一些时间来习惯so的工作。我将更新我的帖子,添加代码和错误。谢谢