如何从listview android中的姓名获取联系方式
Posted
技术标签:
【中文标题】如何从listview android中的姓名获取联系方式【英文标题】:how to get contact detail from name in listview android 【发布时间】:2012-05-20 22:25:47 【问题描述】:我使用了这段代码,但结果不是我在列表视图中选择的名称的信息,而是来自其他名称的信息。
contactmanager.java
protected void onListItemClick(ListView l, View v, int position, long id)
super.onListItemClick(l, v, position, id);
Intent i = new Intent(this, ContactEditor.class);
i.putExtra(ContactsContract.Contacts._ID, id);
startActivityForResult(i, 2);
ContactEditor.java
private Long mRowId;
mRowId = savedInstanceState != null ? savedInstanceState.getLong(ContactsContract.Contacts._ID):null;
if (mRowId == null)
Bundle extras = getIntent().getExtras();
mRowId = extras != null ? extras.getLong(ContactsContract.Contacts._ID):null;
populateFields();
private void populateFields()
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
if (mRowId != null)
while (cur.moveToNext())
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
mContactNameEditText.setText(name);
【问题讨论】:
【参考方案1】:您必须询问您想要的 id。这会询问每个联系人,并且只显示最后一个:
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (mRowId != null)
试试这样的:
if (mRowId != null)
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
ContactsContract.Contacts._ID + "=" + mRowId, null, null);
【讨论】:
SAAAAAAM.. 你的回答让我非常满意.. 4 天我被困在这种情况下。非常感谢兄弟。以上是关于如何从listview android中的姓名获取联系方式的主要内容,如果未能解决你的问题,请参考以下文章
Android通过电话号码有效地获取联系人姓名以在ListView中显示
如何在单击android中的listview项目时从数据库中获取id
如何从存储在数据库中的 Listview 获取值到另一个活动?使用 Android 和 Mysql