Como faço para vincular uma caixa de seleção para cada contato na visualização de lista preenchida?
Eu tenho tido muitos problemas com esse problema. Eu tenho um listview que contém:
ImageView / contactName / TextView / CheckBox
onome de contato no listview é preenchido lendo os contatos no telefone de umSimpleCursorAdapter. Todos os elementos mostram quando o aplicativo é executado, mas o problema que estou tendo é conectar as caixas de seleção ao item correspondente na lista.
Através de algumas pesquisas, descobri que devo usar umgetView () para vincular as caixas de seleção aos itens da lista, mas, por meio da prática, não consigo fazer com que funcione corretamente. Além disso, nenhum dos exemplos que eu tentei realmente explicou como aplicar getView (). O exemplo mais completo do qual venho trabalhando é daqui:
http://androidcocktail.blogspot.com/2012/04/adding-checkboxes-to-custom-listview-in.html
A diferença é que isso lê e preenche minha lista com meus contatos:
private void populateContactList() {
// Build adapter with contact entries
Cursor cursor = getContacts();
String[] fields = new String[] {
ContactsContract.Data.DISPLAY_NAME
};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.contact_entry, cursor,
fields, new int[] {R.id.contactEntryText});
lv.setAdapter(adapter);
} // END POPULATECONTACTLIST
private Cursor getContacts()
{
// Run query
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME
};
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '" +
(chkboxAllVisible ? "0" : "1") + "'";
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
return managedQuery(uri, projection, selection, selectionArgs, sortOrder);
} // END GETCONTACTS
Como faço para vincular cada caixa de seleção aos itens de contato correspondentes em minha lista?