cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)),表示获取联系人ID
时间: 2024-03-31 08:34:39 浏览: 26
是的,这段代码获取了系统联系人数据中的联系人ID。具体来说,它使用了Cursor的getColumnIndex()方法获取ContactsContract.Contacts._ID列的索引,然后再调用getString()方法获取该列对应的值,即联系人ID。
ContactsContract.Contacts._ID列是系统联系人数据中的一个基本列,它的值是一个整型数字,用于唯一标识系统联系人数据中的每个联系人。因此,如果我们需要对系统联系人数据进行操作,如添加、修改、删除联系人信息,就需要使用该列的值来指定要操作的联系人。
相关问题
cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)),表示获取联系人的名字
是的,这段代码获取了系统联系人数据中的联系人名字。具体来说,它使用了Cursor的getColumnIndex()方法获取ContactsContract.Contacts.DISPLAY_NAME列的索引,然后再调用getString()方法获取该列对应的值,即联系人的名字。
ContactsContract.Contacts.DISPLAY_NAME列是系统联系人数据中的一个基本列,它的值是一个字符串,表示系统联系人数据中的每个联系人的名字。因此,如果我们需要在应用程序中显示联系人的名字,就可以使用该列的值来获取联系人的名字。
public void onClick(View v) { if(v.getId()==R.id.button1) { list = new ArrayList<>(); ContentResolver resolver = getContentResolver(); Uri uri = ContactsContract.Contacts.CONTENT_URI; Cursor cursor = resolver.query(uri, null, null, null, null); while (cursor.moveToNext()) { map = new HashMap<>(); //获取联系人姓名,手机号码 @SuppressLint("Range") String cName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); // Toast.makeText(MainActivity.this, cName, Toast.LENGTH_SHORT).show(); map.put("name", cName); @SuppressLint("Range") String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); // Toast.makeText(MainActivity.this, id, Toast.LENGTH_SHORT).show(); Cursor phone = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[]{id}, null); StringBuffer sbphone = new StringBuffer(); phone.move(0); while (phone.moveToNext()) { @SuppressLint("Range") String phones = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // Toast.makeText(MainActivity.this, phones, Toast.LENGTH_SHORT).show(); map.put("phone", sbphone.append(phones + " ".toString())); } list.add(map); } SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.layout, new String[]{"name", "phone"}, new int[]{R.id.textView3, R.id.textView4}); listView.setAdapter(adapter); }解释这段代码
这段代码实现了获取Android设备上联系人信息的功能,并将其展示在一个ListView上。具体实现过程如下:
1. 初始化一个空的ArrayList用于存储联系人信息。
2. 获取ContentResolver对象并使用ContactsContract.Contacts.CONTENT_URI查询联系人信息,返回一个Cursor对象。
3. 遍历Cursor对象,并通过getColumnIndex方法获取联系人姓名和ID。
4. 使用联系人ID查询该联系人的手机号码,并将其放入一个StringBuffer中。
5. 将联系人姓名和手机号码存储到一个HashMap中,并将其放入ArrayList中。
6. 使用SimpleAdapter将ArrayList中的联系人信息展示在ListView上。
具体实现细节可以参考注释。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)