Bonjour,
J'ai une base donnée dont les éléments sont affiché dans une liste view , j'arrive à ajouter, modifier et supprimer un élément mais lorsque je supprime un élément et que j'ajoute un nouvelle élément celui ci n'est pas ajouté ni affiché et quand j'ajoute une deuxième fois , l'élément est bien ajouté dans la base donnée et affiché dans la listView.
La base de donnée est composé d'objet Tache qui a un titre (string), une priorité (int) et un identifiant.
Pour supprimé un élément de la listView, je clique dessus -> une boite de dialogue s'ouvre avec un bouton supprimé -> si je clique sur supprimé ca lance la méthode supprimer() et la boite de dialogue se ferme.
Peut être que le problème vient de là et qu'il faudrait recharger l'activité ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public class Tache_BDD extends SQLiteOpenHelper {
 ...
 
    public void supprimeUneTacheById (Long id)
    {
 
        this.getWritableDatabase().delete(TABLE_TACHE,COL_ID + " = ?",new String[] {String.valueOf(id)});
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
public class MainActivity implements Dial.InterfaceSupprime { { 
...
 
    public void supprimer()
    {
        liste_taches = t_bdd.getAllTache(); Log.d("AVANT_SUPPRESSION",""+liste_taches);
        t_bdd.supprimeUneTacheById(id_bdd);
        String message = t.titre + "\npriorité: " + t.priorite + "\nSUPPRIMÉ";
        Toast.makeText(getApplicationContext(),message, Toast.LENGTH_LONG).show();
        adapteur();
  }
 
    public void adapteur()
    {
        liste_taches   = t_bdd.getAllTache(); <- récupere tous éléments de la base donnée.
        Log.d("adapteur"," "+liste_taches);
        adapter        = new AdaptateurPerso(this,liste_taches);
        setListAdapter(adapter);
 
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
public class Dial extends DialogFragment  {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v  = inflater.inflate(R.layout.boite_de_dialogue, null);
 
         Button supprimer = (Button) v.findViewById(R.id.supprimer);
        supprimer.setOnClickListener(supprimeOnClick);
 
        return v;
    }
 
   ...
    private InterfaceSupprime mListener;
 
    View.OnClickListener supprimeOnClick = new View.OnClickListener() {
 
        public void onClick(View v) {
 
            mListener.supprimer();
            getDialog().dismiss();
 
        }
 
    };