Я думаю, что решение вашей проблемы заключается в использовании настраиваемого адаптера списка, в котором каждый элемент содержит имя и идентификатор контакта, вот подробности:
1) Попробуйте создать пользовательский элемент контакта, включающий 2 свойства: contactID, contactName
public class contactItem{
private long contactID;
private String contactName;
//...
}
Создать CustomContactAdapter:
public class CustomContactAdapter extends ArrayAdapter<contactItem>{
ArrayList<contactItem> itemList = null;
//Constructor
public CustomContactAdapter (Context context, int MessagewResourceId,
ArrayList<contactItem> objects, Handler handler) {
//Save objects and get LayoutInflater
itemList = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final ReceiveMailStruct contact= items.get(position);
if (contact!= null) {
view = inflater.inflate(R.layout.layout_display_contact_item, null);
//Set view for contact here
}
}
}
Поиск пользовательского адаптера для получения дополнительной информации
2) Чтобы обработать событие щелчка в ListView, вы должны зарегистрировать обработчик для listitem:
Шаг 1: Зарегистрируйте обработчик для элемента списка:
lvContacts.setOnItemClickListener(new HandlerListClickEvent());
Шаг 2: Реализация процесса при нажатии элемента (отметьте / снимите флажок)
class HandlerListClickEvent implements OnItemClickListener {
public void onItemClick( AdapterView<?> adapter, View view, int position, long id ) {
//Get contact ID here base on item position
}
Надеюсь, это поможет,
С уважением,