Obtenha o item selecionado do ListView associado ao SimpleCursorAdapter
Sou novato no desenvolvimento do Android ... proveniente de iPhone e .Net. Já vi perguntas muito semelhantes a essa, mas nenhuma delas lidou com o SimpleCursorAdapte
Eu tenho um ListActivity básico que usa um Cursor para vincular dados de uma consulta SQLite ao meu 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);
Então, quando um item é clicado:
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);
}
Esta é a maneira correta de obter o ID do elemento que foi selecionado? Parece estranho, porque eu acho que não poderia usar meu cursor após o fechamento do banco de dados (que é após a ligação). Qual é o sentido do ID passado quando parece que não consigo encontrar uma maneira de obter o item real desse ID? Além disso, não entendo por que o getItemAtPosition () retornaria um cursor ... o cursor está vinculado à lista inteira; não apenas uma linha. Finalmente, se isso estiver correto, existe uma diferença entre as duas maneiras mostradas de obter o cursor? Obrigado