Sélection spinner résultat en décalé
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:
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:
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);
}
} |