Bonjour,

J'essaye plutôt que de faire x classes internes et x appels d'exécution une boucle qui gèrerait le tout.

J'ai donc ma boucle for (qui j'espère fonctionnera correctement ^^):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for (int i = 0; (i < buttonId.length); i++){
			buttonMap[i] = (Button) v.findViewById(buttonId[i].getResId());
			listViewMap[i] = (ListView) v.findViewById(listViewId[i].getResId());
			listViewMap[i].setVisibility(View.GONE);
			arrayAdapterMap[i] = new ArrayAdapter<String>(this.getActivity(), arrayAdapterId[i].getResId(), mData[i]);
 
			buttonMap[i].setOnClickListener(new MyListViewListener(listViewMap[i]));
 
			listViewMap[i].setAdapter(arrayAdapterMap[i]);
 
			listViewMap[i].setOnItemClickListener(new MyListViewItemListener(mData[i], getActivity()));
 
			new AsyncDownload().execute(urlView1, "periode", "allPeriode", mData[i]);
		}
La dernière ligne de celle-ci appel les tâches asynchrones pour chaque liste que j'ai créé dans ma boucle.
Et donc je fais une classe (externe), déjà là apparemment le .execute n'est plus toléré.

Ce que j'aimerais savoir c'est quelle syntaxe je dois utiliser pour passer mes tableau en paramètre pour que cela ne provoque plus d'erreur dans ma classe:

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 AsyncDownload extends AsyncTask<String, Void, List<String>> {
 
	public HttpConnexion mHttpConnexion = new HttpConnexion();
	public InputStream mInputStream;
 
	@Override
	protected List<String> doInBackground(String... params) {
		// TODO Auto-generated method stub
		String url = params[0];
		String key= params[1];
		String periode = params[2];
		List<String> mData = (List<String>) params[3];
		mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
		String res = mHttpConnexion.convertToString(mInputStream);
		mData = mHttpConnexion.parseJsonFile(res);
		return mData;	
	}
 
	@Override
	protected void onPostExecute(List<String> result) {
		super.onPostExecute(result);
		if (result != null){
			mData=result;
			mAdapter.clear();
			for (String str : result){ //for i:0; i<mData.size(); i++ ==> String str = mData.get(i) // Ligne modifiée
				mAdapter.add(str);
			}
			mAdapter.notifyDataSetChanged();
		}
	}
 
 
}
Ici ça serait mData et mAdapter.


Une seconde question pour une classe onItemClickListener, le startActivity n'est pas reconnu con plus et il me demande de créer une méthode (mais je ne vois pas ce que je dois mettre dedans:

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 class MyListViewItemListener implements OnItemClickListener {
	private List<String> list;
	private FragmentActivity fragmentActivity;
 
	public MyListViewItemListener(List<String> list, FragmentActivity activity) {
		// TODO Auto-generated constructor stub
		this.list = list;
        this.fragmentActivity = fragmentActivity;
	}
 
	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
		// TODO Auto-generated method stub
		String choix = list.get(position);
		Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
		mObjetBundle.putString("choix", choix);
		Intent t = new Intent(fragmentActivity, Tableau.class); //permet d'appeler la nouvelle activité
		t.putExtras(mObjetBundle);
		startActivity(t);
	}
 
	private void startActivity(Intent t) {
		// TODO Auto-generated method stub
 
	}
}
Voilà en espérant que vous serez m'aider ^^