Difficulté pour supprimer une ligne dans ma listview sqlite
Résolu/Fermé
rapidegoyes
Messages postés
132
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
24 avril 2025
-
Modifié le 2 juin 2020 à 10:15
rapidegoyes Messages postés 132 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 24 avril 2025 - 3 juin 2020 à 22:44
rapidegoyes Messages postés 132 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 24 avril 2025 - 3 juin 2020 à 22:44
A voir également:
- Difficulté pour supprimer une ligne dans ma listview sqlite
- Supprimer une page dans word - Guide
- Partager photos en ligne - Guide
- Aller à la ligne dans une cellule excel - Guide
- Supprimer compte instagram - Guide
- Supprimer pub youtube - Accueil - Streaming
3 réponses
BunoCS
Messages postés
15951
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 avril 2025
3 914
3 juin 2020 à 09:19
3 juin 2020 à 09:19
Il y a un souci dans ta méthode de suppression. Il faut que tu passes un id dans ta requête. 2 possibilités :
Passer par la méthode
Ou une requête
Passer par la méthode
delete()
public void supprime_ligne(Integer id) { SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_NAME, "id = ? ", new String[]{Integer.toString(id)}); }
Ou une requête
public void supprime_ligne(Integer id) { SQLiteDatabase db = this.getWritableDatabase(); String s = "DELETE FROM " + TABLE_NAME + " WHERE id=" + id; db.execSQL(s); }
BunoCS
Messages postés
15951
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 avril 2025
3 914
2 juin 2020 à 10:17
2 juin 2020 à 10:17
Hello,
Dans ton
Dans ton
onItemLongClick(), tu redéfinis un
onClickListener(). Tu devrais plutôt appeler tes méthodes, non ?
rapidegoyes
Messages postés
132
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
24 avril 2025
8
Modifié le 2 juin 2020 à 18:35
Modifié le 2 juin 2020 à 18:35
Bonjour
Merci de m'épauler.
J'ai modifié ma fonction onItemLongClick()
Mais rien n'y fait je n'arrive pas à supprimer une ligne dans ma listview.
Je viens de faire un essai avec appel de fonction, dès que j'exécute un longclick mon appli se bloque
voici le message d'erreur
Je m'explique l'appel de la fonction supprime_ligne() provoque l'erreur!
Tandis qu'avec la fonction deleteData() il n'y a aucune réaction au click long !
Si je supprime des arguments à la fonction j'ai plein d'erreurs !
Je ne vois pas quels arguments supprimer et où !
Voici la modif
a +++ rapidego
Merci de m'épauler.
J'ai modifié ma fonction onItemLongClick()
Mais rien n'y fait je n'arrive pas à supprimer une ligne dans ma listview.
Je viens de faire un essai avec appel de fonction, dès que j'exécute un longclick mon appli se bloque
voici le message d'erreur
Je m'explique l'appel de la fonction supprime_ligne() provoque l'erreur!
Tandis qu'avec la fonction deleteData() il n'y a aucune réaction au click long !
Si je supprime des arguments à la fonction j'ai plein d'erreurs !
Je ne vois pas quels arguments supprimer et où !
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.sqlitedatabase, PID: 7202
java.lang.IllegalArgumentException: Too many bind arguments. 1 arguments were provided but the statement needs 0 arguments
Voici la modif
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
db.supprime_ligne();
return false;
}
a +++ rapidego
BunoCS
Messages postés
15951
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 avril 2025
3 914
2 juin 2020 à 18:27
2 juin 2020 à 18:27
Il faut que tu passes un ID en paramètre de ta fonction
Sinon, je ne comprends pas comment elle fonctionne.
Attention toutefois : il est dangereux de supprimer l'item sur lequel tu fais un longClick. Il vaut mieux intercaler une dialog de confirmation. Sinon, tu supprimes l'item, mais ton doigt reste sur l'écran, donc tu risques de supprimer l'item suivant, etc.
supprime_ligne(), non ?
Sinon, je ne comprends pas comment elle fonctionne.
Attention toutefois : il est dangereux de supprimer l'item sur lequel tu fais un longClick. Il vaut mieux intercaler une dialog de confirmation. Sinon, tu supprimes l'item, mais ton doigt reste sur l'écran, donc tu risques de supprimer l'item suivant, etc.
rapidegoyes
Messages postés
132
Date d'inscription
samedi 22 février 2020
Statut
Membre
Dernière intervention
24 avril 2025
8
>
BunoCS
Messages postés
15951
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 avril 2025
Modifié le 2 juin 2020 à 22:31
Modifié le 2 juin 2020 à 22:31
Bonsoir,
J'ai mis un paramètre mais j'ai toujours un blocage de mon programme.
Il m'affiche aucune erreur l'appli démarre et se bloque seulement lorsque je clique long sur l'item
voici mes modifs
voici le message d'erreur
java.lang.IllegalArgumentException: Too many bind arguments. 1 arguments were provided but the statement needs 0 arguments.
cordialement
rapidego
J'ai mis un paramètre mais j'ai toujours un blocage de mon programme.
Il m'affiche aucune erreur l'appli démarre et se bloque seulement lorsque je clique long sur l'item
voici mes modifs
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
db.supprime_ligne(id);
return true;
}
public void supprime_ligne(long id){
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL( "delete from " + TABLE_NAME, new String[]{"id=?"});
}
voici le message d'erreur
java.lang.IllegalArgumentException: Too many bind arguments. 1 arguments were provided but the statement needs 0 arguments.
cordialement
rapidego
Modifié le 3 juin 2020 à 22:45
Un grand merci pour ton aide plus aucun problème.
Il y avait bien un problème avec ma méthode.
Je fais un clic long et après ré-affichage de la vue l'enregistrement et bel et bien supprimé.
Grace à ton aide je vais enfin pouvoir continuer mon appli.
J'ai complété le code avec ta méthode delete.
Encore mille fois merci et à plus
cordialement
rapidegoyes