La meilleure voie à suivre sera de récupérer l'identifiant de l'enregistrement à partir de l'objet représenté par ListView
élément, puis utilisez-le pour obtenir l'enregistrement correct dans la base de données. Dans votre ListView
OnItemClickListener
de , le onItemClick
l'événement prend le AdapterView
comme premier argument et l'index de l'élément sélectionné comme second. Obtenez cet élément de l'adaptateur et convertissez-le en type qu'il représente.
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
YourClass c = (YourClass)arg0.getItemAtPosition(arg2);
//index of the record to delete can now be accessed at c.id
}
Cependant, si vous voulez vraiment obtenir le énième record, je pense que vous pouvez faire ce qui suit :
SELECT * FROM TableName LIMIT 1 OFFSET n;
Où n est l'index que vous recherchez. Cela suppose également que vos résultats sont classés de la même manière que dans votre ListView
.