Bonjour, je suis en train de développer une application qui gère une base de donnée SQLite en utilisant OrmLite et j'ai un problème de boucle.

J'arrive bien a récupérer mes données et a les afficher, mais la méthode insertScore s’exécute pleins de fois, pareil pour la méthode readscore et je ne comprends pas pourquoi.
je sais grâce aux logs, que le souci vient bien d'un nombre répété d’exécution de ces deux méthodes, mais je ne vois pas ou elles peuvent bien boucler...


S quelqu'un peut me mettre sur la voie ce serait cool...

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
public class DatabaseManager extends OrmLiteSqliteOpenHelper {
 
    private static final String DATABASE_NAME = "Glycemie.db";
    private static final int DATABASE_VERSION = 1;
 
    public DatabaseManager(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) {
        try {
            TableUtils.createTable(connectionSource, Glycemie.class);
            Log.i( "DATABASE", "onCreate invoked" );
 
        } catch (Exception exception) {
            Log.e( "DATABASE", "Can't create Database", exception );
 
        }
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) {
 
    }
 
 
 
    public void insertScore( Glycemie glycemie ) {
        try {
            Dao<Glycemie, Integer> dao = getDao( Glycemie.class );
            dao.create( glycemie );
            Log.i( "DATABASE", "insertScore invoked" );
        } catch( Exception exception ) {
            Log.e( "DATABASE", "Can't insert score into Database", exception );
        }
    }
 
 
 
    public List<Glycemie> readScores() {
        try {
            Dao<Glycemie, Integer> dao = getDao( Glycemie.class );
            List<Glycemie> scores = dao.queryForAll();
            Log.i( "DATABASE", "readScores invoked" );
            return scores;
        } catch( Exception exception ) {
            Log.e( "DATABASE", "Can't insert score into Database", exception );
            return null;
        }
    }
 
 
}

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
25
26
27
28
29
30
31
32
 
private TextView scoreView;
   private DatabaseManager databaseManager;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
 
 
        scoreView = (TextView)findViewById(R.id.scoresView3);
 
        databaseManager = new DatabaseManager(this);
 
 
 
        databaseManager.insertScore(new Glycemie(1));
        // databaseManager.insertScore(new Glycemie(2));
 
 
         List<Glycemie> scores = databaseManager.readScores();
        /*
        for( Glycemie gly : scores ) {
            scoreView.append( scores.toString() + "\n\n" );
        }
        */
 
        scoreView.append( scores.toString() + "\n\n" );
 
        databaseManager.close();
    }
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
25
26
27
28
29
30
31
32
33
34
35
36
@DatabaseTable(tableName = "tableGlycemie")
public class Glycemie {
 
    @DatabaseField(columnName = "valueglycemia", generatedId = true)
    private int idGlycemie;
 
    @DatabaseField
    private int valeurGlycemie;
 
 
    Glycemie(){}
 
    public Glycemie(int valeurGlycemie) {
        this.valeurGlycemie = valeurGlycemie;
    }
 
    public int getId() {
        return idGlycemie;
    }
 
    public void setId(int idGlycemie) {
        this.idGlycemie = idGlycemie;
    }
 
    public int getValeurGlycemie() {
        return valeurGlycemie;
    }
 
    public void setValeurGlycemie(int valeurGlycemie) {
        this.valeurGlycemie = valeurGlycemie;
    }
 
    @Override
    public String toString() {
        return "valeurGlycemie = " + valeurGlycemie;
    }