【问题标题】:how to get contact detail from name in listview android如何从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);
        }
    }
}   

【问题讨论】:

    标签: android android-intent android-listview android-contacts android-cursor


    【解决方案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 天我被困在这种情况下。非常感谢兄弟。
    猜你喜欢
    • 2012-10-11
    • 2016-05-05
    • 2011-09-13
    • 2011-05-17
    • 2021-01-06
    • 1970-01-01
    • 2020-04-04
    • 2016-05-07
    相关资源
    最近更新 更多