Obtenga el elemento seleccionado de ListView enlazado con SimpleCursorAdapter

Soy nuevo en el desarrollo de Android ... proveniente de iPhone y .Net. He visto preguntas muy similares a esta, pero ninguna de ellas se ocupó del SimpleCursorAdapter.

Tengo una ListActivity básica que usa un cursor para vincular datos de una consulta SQLite a mi ListView:

ListAdapter adapter = new SimpleCursorAdapter(
        this, 
        android.R.layout.simple_list_item_1,  
        c,        
        new String[] {"name"},   
        new int[] {android.R.id.text1}); 

setListAdapter(adapter);

Luego, cuando se hace clic en un elemento:

public void onListItemClick(ListView l, View v, int position, long id) {

    super.onListItemClick(l, v, position,  id);

    //Difference between this:
    Cursor c = (cursor)l.getItemAtPosition(position);
    //and this??
    Cursor c = (Cursor)l.getAdapter().getItem(position);

    int categoryId = c.getInt(0);
}

¿Es esta la forma correcta de obtener la identificación del elemento seleccionado? Parece extraño, porque no creo que pueda usar mi cursor después de cerrar la base de datos (que es después de vincular). ¿Cuál es el punto de la identificación pasada, cuando parece que no puedo encontrar una manera de obtener el elemento real de esa identificación? Además, no entiendo por qué getItemAtPosition () devolvería un cursor ... el cursor está vinculado a toda la lista; No solo una fila. Finalmente, si esto es correcto, ¿hay alguna diferencia entre las dos formas que se muestran para obtener el cursor? Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta