Bonjour ,
après avoir cliquer sur un bouton ""la liste des patient" qui mène a une autre activé "affichage" l' application se ferme soudainement
voici mes code :
voila ma classe qui gére la base de donnée
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
package com.example.ai_213.patientsagenda;
 
/**
 * Created by ai-213 on 29/05/2016.
 */
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
 
public class PatientManager {
 
 
 
 
 
    public static final String TABLE_NAME = "patient";
    public static final String KEY_ID_PATIENT="id_patient";
    public static final String KEY_NOM_PATIENT="nom_patient";
    public static final String KEY_PRENOM_PATIENT="prenom_patient";
    public static final String KEY_AGE_PATIENT="age_patient";
    public static final String KEY_SANG_PATIENT="groupe_sang_patient";
    public static final String KEY_MALADIE_PATIENT="maladie_patient";
    public static final String KEY_TEL_PATIENT="tel_patient";
    public static final String KEY_DEGRE_MALDIE="degre_maladie";
    public static final String KEY_COMMENTAIRE="comments";
    public static final String CREATE_TABLE_PATIENT = "CREATE TABLE "+TABLE_NAME+
            " (" +
            " "+KEY_ID_PATIENT+" INTEGER primary key," +
            " "+KEY_NOM_PATIENT+" TEXT" + KEY_PRENOM_PATIENT+"TEXT"+ KEY_AGE_PATIENT+"TEXT"+ KEY_SANG_PATIENT+"TEXT"+ KEY_MALADIE_PATIENT
            +"TEXT"+ KEY_TEL_PATIENT+"TEXT"+KEY_DEGRE_MALDIE+"TEXT"+KEY_COMMENTAIRE+
            ");";
    private MySQLite maBaseSQLite; // notre gestionnaire du fichier SQLite
    private static SQLiteDatabase db;
 
    // Constructeur
    public PatientManager(Context context)
    {
        maBaseSQLite = MySQLite.getInstance(context);
    }
 
    public void open()
    {
        //on ouvre la table en lecture/écriture
        db = maBaseSQLite.getWritableDatabase();
    }
 
    public void close()
    {
        //on ferme l'accès à la BDD
        db.close();
    }
 
    public  long addPatient(Patient patient) {
        // Ajout d'un enregistrement dans la table
 
        ContentValues values = new ContentValues();
        values.put(KEY_NOM_PATIENT, patient.getnom_patient());
        values.put(KEY_PRENOM_PATIENT, patient.getPrenom_patient());
        values.put(KEY_AGE_PATIENT, patient.getAge_patient());
        values.put(KEY_SANG_PATIENT, patient.getGroupe_sang_patient());
        values.put(KEY_MALADIE_PATIENT, patient.getMaladie_patient());
        values.put(KEY_TEL_PATIENT, patient.getTel_patient());
        values.put(KEY_DEGRE_MALDIE, patient.getDegre_maladie());
        values.put(KEY_COMMENTAIRE, patient.getComments());
 
        // insert() retourne l'id du nouvel enregistrement inséré, ou -1 en cas d'erreur
        return db.insert(TABLE_NAME, null, values);
    }
 
    public int modpatient(Patient patient) {
        // modification d'un enregistrement
        // valeur de retour : (int) nombre de lignes affectées par la requête
 
        ContentValues values = new ContentValues();
        values.put(KEY_NOM_PATIENT, patient.getnom_patient());
        values.put(KEY_PRENOM_PATIENT, patient.getPrenom_patient());
        values.put(KEY_AGE_PATIENT, patient.getAge_patient());
        values.put(KEY_SANG_PATIENT, patient.getGroupe_sang_patient());
        values.put(KEY_MALADIE_PATIENT, patient.getMaladie_patient());
        values.put(KEY_TEL_PATIENT, patient.getTel_patient());
        values.put(KEY_DEGRE_MALDIE, patient.getDegre_maladie());
        values.put(KEY_COMMENTAIRE, patient.getComments());
 
        String where = KEY_ID_PATIENT+" = ?";
        String[] whereArgs = {patient.getnom_patient()+""};
 
        return db.update(TABLE_NAME, values, where, whereArgs);
    }
 
    public int suppatient(Patient patient) {
        // suppression d'un enregistrement
        // valeur de retour : (int) nombre de lignes affectées par la clause WHERE, 0 sinon
 
        String where = KEY_ID_PATIENT+" = ?";
        String[] whereArgs = {patient.getnom_patient()+""};
 
        return db.delete(TABLE_NAME, where, whereArgs);
    }
 
    public static String getPatient() {
        // Retourne le patient dont l'id est passé en paramètre
 
 
 
 
 
            Cursor c = db.rawQuery("SELECT * FROM "+TABLE_NAME, null);
             c.moveToFirst();
        String valeur="";
 
 
        while(! c.isAfterLast())
 
        {
 
            String s2=c.getString(0);
 
            String s3=c.getString(1);
 
            String s4=c.getString(2);
 
            String s5=c.getString(3);
 
            String s6=c.getString(4);
 
            String s7=c.getString(5);
 
            String s8=c.getString(6);
 
 
 
 
            valeur=valeur+"\n Nom:"+s2+"\t Prenom:"+s3+"\t Age:"+s4+"\t Groupe sanguin:"+s5+"\t Maladie:"+s6+"\t Tel:"+s7+
            "\t Degre de la maladie"+s8+"\t Commentaire";
 
            c.moveToNext();
 
        }
 
return (valeur);
 
    }
 
 
 
 
 
 
 
 
}
2- l' activité ou je veux afficher mes données

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
56
package com.example.ai_213.patientsagenda;
 
import android.app.Activity;
 
/**
 * Created by ai-213 on 30/05/2016.
 */
import android.content.Context;
 
 
import android.app.Activity;
 
import android.app.ListActivity;
 
import android.database.Cursor;
 
import android.database.sqlite.SQLiteDatabase;
 
import android.database.sqlite.SQLiteException;
 
import android.os.Bundle;
 
import android.view.ViewGroup;
 
import android.widget.*;
 
import java.util.ArrayList;
 
import java.util.List;
 
 
 
public class affichage extends Activity {
 
 
    MySQLite db;
 
 
    @Override
 
    protected void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.affichage);
 
        TextView v = (TextView) findViewById(R.id.v);
 
 
            v.setText( PatientManager.getPatient());
 
 
 
    }
 
}




3-mon activité principale ou j' accède a l' activité affichage a partir du bouton "listes des patient"
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
package com.example.ai_213.patientsagenda;
 
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import com.example.ai_213.patientsagenda.R;
 
public class MainActivity extends AppCompatActivity  {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
 
        final Button Creation = (Button) findViewById(R.id.button1);
 
        Creation.setOnClickListener(new View.OnClickListener() {
 
 
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, saisie.class);
                startActivity(intent);
            }
        });
 
        final Button lister = (Button) findViewById(R.id.button2);
 
        lister.setOnClickListener(new View.OnClickListener() {
 
 
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, affichage.class);
                startActivity(intent);
            }
        });