我所有的联系人 ID 都位于一个名为 ContactsID 的数组列表中,它的名称存储在另一个名为 ContactsName 的数组列表中。我在具有搜索功能的列表视图上显示名称
在过滤器的帮助下,搜索功能也可以正常工作。
我正在尝试使用单击项目的位置从联系人获取电子邮件地址。
像这样的东西:
String Cid = ContactsID.get(position);
我使用 id 获取电子邮件的查询也可以正常工作(当我不搜索任何内容时)..
我唯一的问题是,如果我搜索“名称”,则列表视图会被名称过滤。结果显示在列表视图上,但位置未根据其名称更新。它总是从位置 0 开始,我在获取 EMAIL 的联系人 ID 时会遇到问题。
所以我尝试了 parent.getItemAtPosition(position) (这会获取单击的项目的名称,但没有获取 ContactsID 数组列表位置)
这是我正在尝试的。
lisview.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
String Cid= contactsID.get(position);
/*String SSid = (String) parent.getItemAtPosition(position);
Log.e("ABC",""+SSid);*/
ContentResolver cr = getContentResolver();
Cursor cur1 = cr.query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{Cid}, null);
while (cur1.moveToNext())
{
String email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.e("email",""+email);
}
cur1.close();
}
});
有人可以帮我解决这个问题吗?
谢谢!