IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

affichage des données provenant d'un ws


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 52
    Points
    52
    Par défaut affichage des données provenant d'un ws
    bonsoir à tous ,
    j'ai élaboré un web service quipasse des données depuis une base de données distante au client android.L'affichage des données est fait sur le logcat pour tester.Je veux faire un affichage des données dans listeview mais j'ai un problème car dans la récupération des données j'ai utilisé un thread
    est ce que quelqu'un peut m'aider
    merci d'avance

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Bonjour,

    Il nous faudrait le code que tu as mis en place pour pouvoir t'aider.
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 76
    Points
    76
    Par défaut
    Coucou,
    Utilise la classe AsyncTask fournit par l'api.
    Elle permet de créer un Thread puis de recevoir le résultat dans le UIThread.

  4. #4
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 52
    Points
    52
    Par défaut
    voici le code
    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
    public class ClientJSON extends Activity implements OnClickListener {
     
    	private static final String LOG_TAG = "ClientJSON";
        private static final String NOM_HOTE_SEARCH = "http://10.0.2.2:8080/Webfret";
    	private static final String PATH_METHODE = "/agent";
    	private Button getTextButton;
    	private JSONArray jsonArray;
    	private ProgressDialog progressDialog;
    	//private ListView list;
    	//private List<String> listsName = null;
     
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		// Avec une interface graphique, mettre dans un thread
    		getTextButton = (Button)findViewById(R.id.Button);
    		getTextButton.setOnClickListener(this);
    		//list= (ListView) findViewById(R.id.list);
    	}
     
    	protected void downloadText(String urlStr) {
    		progressDialog = ProgressDialog.show(this, "", "Loading file...");
    		final String url = urlStr;
    		new Thread () {
    			public void run() {
    				Message msg = Message.obtain();
    				msg.what=1;
    				HttpClient httpClient = new DefaultHttpClient();
    				try {
    					HttpGet httpGet = new HttpGet(url);
    					HttpResponse httpResponse = httpClient.execute(httpGet);
    					HttpEntity entity = httpResponse.getEntity();
     
    					if (entity != null) {
    						InputStream inputStream = entity.getContent();
    						// Lecture du retour au format JSON
    						BufferedReader bufferedReader = new BufferedReader(
    								new InputStreamReader(inputStream));
    						StringBuilder stringBuilder = new StringBuilder();
     
    String ligneLue = bufferedReader.readLine();
    while (ligneLue != null) {
     stringBuilder.append(ligneLue + "\n");
    ligneLue = bufferedReader.readLine();
    					}
    	inputStream.close();
    	String str2=stringBuilder.toString();
         Log.i(LOG_TAG, str2);
    // Analyse du retour
    jsonArray = new JSONArray(stringBuilder.toString());
    System.out.println(jsonArray.length());
    String str=jsonArray.toString();
    Log.i(LOG_TAG, str);
    int i=0;
    JSONObject kj;
    while(jsonArray.optJSONObject(i) != null){
    kj=jsonArray.getJSONObject(i);
    	i++;
    Integer id=kj.getInt("idagt");
    Log.i(LOG_TAG, id.toString());
    String user=kj.getString("useragt");
    Log.i(LOG_TAG, user);
    String pwd=kj.getString("pwdagt");
    Log.i(LOG_TAG, pwd);
    //affichage(user, pwd);
    						}
    					}
    				}
     catch (IOException e) {
    					Log.e(LOG_TAG, e.getMessage());
    				} catch (JSONException e) {
    					Log.e(LOG_TAG, e.getMessage());
    				}
    				//messageHandler.sendMessage(msg);
    				progressDialog.dismiss();
    			};
    		}.start();
    	}
     
     
     
    	@Override
    	public void onClick(View arg0) {
    		downloadText(NOM_HOTE_SEARCH+PATH_METHODE);
    		}
    }
    Themouton est ce que tu peux mieux eclaircir ??merci

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 76
    Points
    76
    Par défaut
    Dans ton code tu remplaces la partie Thread par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    new AsyncTask<Url,Integer,List<TonBean>>() {
    protected List<TonBean> doInBackground(String... params) {
    List<TonBean> tonBeanList = new ArrayList();
     
    -- ici traitement long qui remplie la liste, appel http, parse etc...
     
    return tonBeanList;
    }
     
    protected void onPostExecute(List<TonBean> result) {
    -- ici on se retrouve dans le UI Thread et tu peux maintenant remplir ta listview avec le resultat de retour.
    }
    }.execute(url);
    Selon la javadoc pour AsyncTask, le premier géneric correspond au type de paramètre, dans ton cas j'ai mis String car tu fournis une url, le second c'est pour un progress en cours d'execution, j'ai mis Integer si par exemple tu veux renvoyé le nombre de ligne traité et l'afficher dans ta progresse dialog. Et le troisième c'est le type de retour, dans ce cas une liste d'objet.
    Tu es pas obliger de mettre un paramètre d'entrée tu peux mettre Void et dans ce cas faire à la fin .execute(); Car tu mets déjà ton url en final donc tu y auras acces depuis le doInBackground.

  6. #6
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2011
    Messages : 64
    Points : 52
    Points
    52
    Par défaut merci
    merci bcp mais j'ai essayé ça n'a pas marché

Discussions similaires

  1. affichage des données provenant d'un web service soap dans une listview
    Par nagca dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 04/07/2011, 17h11
  2. [MySQL] Affichage des données provenant de la base
    Par titirigole dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 30/12/2008, 20h08
  3. [MySQL] Affichage des données provenant du formulaire
    Par ciel65 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/12/2006, 18h35
  4. TDBCtrlGrid - Affichage des données
    Par audreyb dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/10/2004, 13h10
  5. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo