Bonjour,

Je viens vers vous car un petit problème dans mon code je suppose.

J'ai un spinner qui est alimenté par une base Mysql avec Asynctask. Je veux quand je clique sur un item, j'obtiens des résultats d'une autre requête mysql pareil en asynctask

Le problème c'est que quand je clique sur un item. Il me retourne les données en décaler.

Je m'explique.

Quand je clique sur le 1er item, il me retourne rien. Quand je clique sur le 2ème, il m'affiche 1, quand je clique sur le 1er, il m'affiche 2, quand je clique sur le 3ème il m'affiche 1 etc....

Pouvez me dire pour qu'elle raison?

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
 sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
 
            @Override
            public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
 
                if (position != 0) {
 
 
                ID = parentView.getSelectedItem().toString();
                Articles.getInstance().setReference(ID);
                AffichageInfo Affiches = new AffichageInfo();
                Affiches.execute();
                Toast.makeText(getApplicationContext(), (CharSequence) Articles.getInstance().getID(), Toast.LENGTH_SHORT).show();
               // test.setText();
            }
            }
Et le code qui va chercher l'information à afficher:

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
 
import android.os.AsyncTask;
import android.widget.ArrayAdapter;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.ref.Reference;
import java.util.ArrayList;
 
/**
 * Created by Utilisateur on 22/08/2016.
 */
    class AffichageInfo extends AsyncTask<Void,Void,Void> {
 
        String IDArticle;
        ArrayAdapter<String> adapter;
    String RetourValeur;
 
        protected void onPreExecute(){
            super.onPreExecute();
        }
        protected Void doInBackground(Void...params){
            InputStream is=null;
            String result="";
 
            try{
                HttpClient httpclient=new DefaultHttpClient();
 
                HttpPost httppost= new HttpPost("http://test/AffichageInfo.php"+ "?Reference=" + Articles.getInstance().getReference());
                HttpResponse response=httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                // Get our response as a String.
                is = entity.getContent();
            }catch(IOException e){
                e.printStackTrace();
            }
 
            //convert response to string
            try{
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"));
                String line = null;
                while ((line = reader.readLine()) != null) {
                    result+=line;
                }
                is.close();
                //result=sb.toString();
            }catch(Exception e){
                e.printStackTrace();
            }
            // parse json data
            try{
                JSONArray jArray =new JSONArray(result);
 
                    JSONObject jsonObject=jArray.getJSONObject(0);
                    // add interviewee name to arraylist
                   RetourValeur = jsonObject.getString("ID");
 
            }
            catch(JSONException e){
                e.printStackTrace();
            }
            return null;
        }
        protected void onPostExecute(Void result){
            Articles.getInstance().setID(RetourValeur);
        }
 
 
}