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é:
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 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
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;
	}
 
}
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
	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 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
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)
J'ai entendu parlé d'overide la méthode toString mais je ne sais pas vraiment comment m'y prendre.
Merci d'avance

Cordialement
Johan.P