0

このコードを使用しましたが、結果はlistviewで選択した名前の情報ではなく、他の名前の情報です。listviewの名前から連絡先の詳細を取得する方法

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); 
     } 
    } 
} 

答えて

0

あなたがしたい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); 
+0

SAAAAAAM ...あなたの答えは、私はこのケースで立ち往生したme..4日のために非常に満足しています。大変兄弟ありがとう。 – Fuji

関連する問題