Jak połączyć pole wyboru dla każdego kontaktu w wypełnionym widoku listy?

Miałem wiele problemów z tym problemem. Mam widok listy zawierający:

ImageView / contactName / TextView / CheckBox

TheNazwa Kontaktu w widoku listy jest wypełniany przez czytanie kontaktów w telefonie z aSimpleCursorAdapter. Wszystko dla elementów jest wyświetlane, gdy aplikacja działa, ale problem, który mam, łączy pola wyboru z odpowiadającym im elementem na liście.

Dzięki pewnym badaniom odkryłem, że muszę użyćgetView () aby połączyć pola wyboru z elementami na liście, ale przez praktykę nie wydaje mi się, aby działało poprawnie. Ponadto żaden z przykładów, których próbowałem, nie wyjaśnił, jak zastosować getView (). Najbardziej pełny przykład, z którego pracowałem, pochodzi stąd:

http://androidcocktail.blogspot.com/2012/04/adding-checkboxes-to-custom-listview-in.html

Skręt jest taki, że odczytuje i wypełnia mój widok listy moimi kontaktami:

<code>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 
</code>

Jak połączyć każde pole wyboru z odpowiednim elementem kontaktowym w moim widoku listy?

questionAnswers(3)

yourAnswerToTheQuestion