Bonjour,
J'ai un problème pour afficher une arraylist d'objet qui est stocké dans sqlite, et je n'arrive pas à trouver l'erreur.
Mon activité:
Ma classe test :
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 public class ListeTests extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.liste_tests); ListView lv = (ListView)findViewById(R.id.listetest); ArrayList<Test> test = null; String lv_arr [] = {}; ArrayAdapter<String> allTests; try { test = DBManager.sharedManager().getAllTests(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } lv_arr = test.toArray(new String[test.size()]); allTests = new ArrayAdapter<String> (ListeTests.this, android.R.layout.simple_list_item_1, lv_arr); lv.setAdapter(allTests); //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); final Button Button = (Button) findViewById(R.id.button2); Button.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(ListeTests.this, AjouterTest.class); startActivity(intent); } }); } }
Ma fonction pour sqlite :
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 public class Test { private Long id; private Long idActivite; private String nom; private String client; private String reference; private String detail; private String nomActivite; private Date dateDebut; private Date dateFin; public Test (){ } public String getNomActivite() { return nomActivite; } public void setNom_Activite(String nomActivite) { this.nomActivite = nomActivite; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getNom() { return nom; } public Long getIdActivite() { return idActivite; } public void setIdActivite(Long idActivite) { this.idActivite = idActivite; } public void setNom(String nom) { this.nom = nom; } public String getClient() { return client; } public void setClient(String client) { this.client = client; } public String getReference() { return reference; } public void setReference(String reference) { this.reference = reference; } public String getDetail() { return detail; } public void setDetail(String detail) { this.detail = detail; } public Date getDateDebut() { return dateDebut; } public void setDateDebut(Date dateDebut) { this.dateDebut = dateDebut; } public Date getDateFin() { return dateFin; } public void setDateFin(Date dateFin) { this.dateFin = dateFin; } }
J'ai vérifié que mon arraylist était bien rempli en mode debug, mais quand elle arrive au niveau de l'array adapter, j'ai plusieurs erreurs.
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 public ArrayList<Test> getAllTests() throws ParseException{ if (db == null) { this.databaseHelper.getReadableDatabase(); } String[] cols = {"_id","nom","client"}; ArrayList<Test> listeTest = new ArrayList<Test> (); Cursor c = db.query("test", cols, null, null, null, null, null); while (c.moveToNext ()) { Long id = c.getLong(c.getColumnIndex("_id")); String nom = c.getString(c.getColumnIndex("nom")); String client = c.getString(c.getColumnIndex("client")); Test t = new Test(); t.setId(id); t.setNom(nom); t.setClient(client); listeTest.add(t); } c.close (); return listeTest; }
J'ai entendu parlé d'overide la méthode toString mais je ne sais pas vraiment comment m'y prendre.
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 08-23 10:42:29.224: E/AndroidRuntime(2697): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.application.feeltest/com.application.feeltest.activity.ListeTests}: java.lang.ArrayStoreException 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.os.Handler.dispatchMessage(Handler.java:99) 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.os.Looper.loop(Looper.java:123) 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.app.ActivityThread.main(ActivityThread.java:4627) 08-23 10:42:29.224: E/AndroidRuntime(2697): at java.lang.reflect.Method.invokeNative(Native Method) 08-23 10:42:29.224: E/AndroidRuntime(2697): at java.lang.reflect.Method.invoke(Method.java:521) 08-23 10:42:29.224: E/AndroidRuntime(2697): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-23 10:42:29.224: E/AndroidRuntime(2697): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-23 10:42:29.224: E/AndroidRuntime(2697): at dalvik.system.NativeStart.main(Native Method) 08-23 10:42:29.224: E/AndroidRuntime(2697): Caused by: java.lang.ArrayStoreException 08-23 10:42:29.224: E/AndroidRuntime(2697): at java.lang.System.arraycopy(Native Method) 08-23 10:42:29.224: E/AndroidRuntime(2697): at java.util.ArrayList.toArray(ArrayList.java:523) 08-23 10:42:29.224: E/AndroidRuntime(2697): at com.application.feeltest.activity.ListeTests.onCreate(ListeTests.java:35) 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 08-23 10:42:29.224: E/AndroidRuntime(2697): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
Merci d'avance
Cordialement
Johan.P
Partager