致命异常:主要(联系人列表)

时间:2017-03-12 09:21:32

标签: android

我正试图在list中显示联系人。无论我做什么,它都行不通。

有人可以帮我这个吗?

P.S我是新来的。所以告诉我,如果我做错了什么。

public class MainActivity extends AppCompatActivity
{


ArrayList<String> name = new ArrayList<String>();

ListView list;

Cursor phones;


@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    list = (ListView)findViewById(R.id.list);



    phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
    while(phones.moveToNext())
    {
        String contactName = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
        name.add(contactName);
    }
    phones.close();

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, name);

    list.setAdapter(adapter);

}
}

1 个答案:

答案 0 :(得分:0)

似乎您没有询问获取电话联系人的运行时权限。从Android M及以上版本开始,您需要获得在运行时阅读手机联系人的权限。

检查此链接,了解如何请求运行时权限 - https://developer.android.com/training/permissions/requesting.html

您也可以使用Google图书馆 - https://github.com/googlesamples/easypermissions来请求权限。