SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment obtenir une ligne dans SQLite par index (et non par identifiant)

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 .