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

Composants graphiques Android Discussion :

Afficher une BDD MySQL dans un ListView


Sujet :

Composants graphiques Android

  1. #21
    Membre confirmé
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Points : 486
    Points
    486
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected List<Map<String,Object>> doInBackgroung(Void...voids )
    C'est possible de passé Void en paramètre?

    J'ai utilisé AsyncTask mais d'une autre façon qui me semble moins compliqué lol

    C'est la discussion que j'ai ouverte sur le sujet.

    Et comme le dit MrDuChnok, avant de passer sur ca, vaut mieux attendre de bien mettre le tout en place de façon synchrone pour évité de partir dans du un peu plus complexe.

    Et pour revenir au asynchrone, je trouve plus simple de crée une classe que tu exetend de AsyncTask et après tu fais un appel de ta classe...

  2. #22
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par malgache Voir le message
    , avant de passer sur ca, vaut mieux attendre de bien mettre le tout en place de façon synchrone pour évité de partir dans du un peu plus complexe.
    Et pour revenir au asynchrone, je trouve plus simple de crée une classe que tu exetend de AsyncTask et après tu fais un appel de ta classe...
    Je suis d'accord avec vous, c'est juste que j'ai suivi ce que l'on m'a conseillé, mais je préfererais réussir à afficher ma liste et aprés voir pour créer une classe qui extends AsyncTask, c'est ce que j'avais commencé à faire mais on ma lancé dans la direction de AsyncTask alors j'ai essayé

  3. #23
    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
    Pourtant je t'ai ecris le code plus haut...
    Normal que ça compile pas mettre une procédure dans une autre ça marche pas. De plus il manque une accolade donc tous le code ne compilera pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    new AsyncTask<Void,Void,List<Map<String,Object>>>()
            {
                protected List<Map<String,Object>> doInBackgroung(Void...voids )
                {
                    List<Map<String,Object>> getServerData(String strURL)
                    { 
                 	   List<Map<String, Object>>  res = new ArrayList<Map<String, Object>>();
    Tu peux donc enlever les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     List<Map<String,Object>> getServerData(String strURL)
                    {
    Ensuite dans mon code il y avait une erreur, il faut mettre dans le post :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    protected void onPostExecute(List<Map<String,Object>> res) {
            ListView list = (ListView)findViewById(R.id.listalarm);
            list.setAdapter(new SimpleAdapter(this,res,new String[] { "ID_ALARM","ID_OBJECT" },new int[] { R.id.idAlarmTextView, R.id.idObjectTextView}}));
         }

  4. #24
    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
    Citation Envoyé par malgache Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected List<Map<String,Object>> doInBackgroung(Void...voids )
    C'est possible de passé Void en paramètre?
    Oui c'est possible dans le cas que tu veux mettre aucun paramètre, Void est un object comme un autre. Apres on peut mettre n'importe d'autre vu que dans l'exemple, on n'utilise pas le paramètre.

    Citation Envoyé par malgache Voir le message
    Et comme le dit MrDuChnok, avant de passer sur ca, vaut mieux attendre de bien mettre le tout en place de façon synchrone pour évité de partir dans du un peu plus complexe.

    Et pour revenir au asynchrone, je trouve plus simple de crée une classe que tu exetend de AsyncTask et après tu fais un appel de ta classe...
    Pour info, à partir d'Android 3 et les suivant, les appels http depuis l'UIThread sont rejetés directement avec une belle exception. Donc vaut mieux des le départ faire un truc propre avec thread et c'est 3 lignes de plus. Apres savoir si on fait une instance anonyme ou un extends, ça sera à lui de voir plus tard.

  5. #25
    Invité
    Invité(e)
    Par défaut
    Ok j'ai fait les modifications et j'ai rajouté les { manquantes, plus de problèmes de ce coté. Par contre j'ai une erreur sur le SimpleAdapter

    la syntax est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
    et moi j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SimpleAdapter(this, res,new String[]{"ID_ALARM","ID_OBJECT" },new int[] { R.id.idAlarmTextView,R.id.idObjectTextView })
    Il me manque le int resource non?

  6. #26
    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
    Oui j'ai oublié de mettre le :
    R.layout.tonitem

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SimpleAdapter(this, res,R.layout.tonitem, new String[]{"ID_ALARM","ID_OBJECT" }, new int[] { R.id.idAlarmTextView,R.id.idObjectTextView })

  7. #27
    Invité
    Invité(e)
    Par défaut
    J'ai testé avec ça déja, mais ça me dit que le constructeur est indéfini :s

  8. #28
    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
    Oui c'est à cause du this, il faut mettre le nom de ta class avec un BDDAlarm.this

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SimpleAdapter(BDDAlarm.this, res,R.layout.tonitem, new String[]{"ID_ALARM","ID_OBJECT" }, new int[] { R.id.idAlarmTextView,R.id.idObjectTextView })
    Il faut lui donner le context. Dans notre cas, il donnait l'instance du AsyncTask.

  9. #29
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par themouton Voir le message
    Oui c'est à cause du this, il faut mettre le nom de ta class avec un BDDAlarm.this
    Exact merci je test =)

  10. #30
    Invité
    Invité(e)
    Par défaut
    Alors l'appli se lance mais dés le démarrage j'ai une fermeture forcée, voici les log :
    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
    06-15 08:28:21.881: ERROR/AndroidRuntime(280): FATAL EXCEPTION: main
    06-15 08:28:21.881: ERROR/AndroidRuntime(280): java.lang.NullPointerException
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at com.julie.BDDAlarm$1.onPostExecute(BDDAlarm.java:98)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at com.julie.BDDAlarm$1.onPostExecute(BDDAlarm.java:1)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at android.os.AsyncTask.finish(AsyncTask.java:417)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at android.os.AsyncTask.access$300(AsyncTask.java:127)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at android.os.Handler.dispatchMessage(Handler.java:99)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at android.os.Looper.loop(Looper.java:123)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at java.lang.reflect.Method.invokeNative(Native Method)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at java.lang.reflect.Method.invoke(Method.java:521)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    06-15 08:28:21.881: ERROR/AndroidRuntime(280):     at dalvik.system.NativeStart.main(Native Method)
    Et les lignes concernées sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.setAdapter(new SimpleAdapter(BDDAlarm.this, res,R.layout.listitem, new String[]{"ID_ALARM","ID_OBJECT" },new int[] { R.id.idAlarmTextView,R.id.idObjectTextView }));
    et à la ligne 1 c'est mon package.

    ---EDIT---
    J'ai encore un NullPointerException, ça veut dire que ma liste est encore vide?
    Par contre j'affiche mes log.i présents dans mon code, donc je me connecte bien à ma bdd.

  11. #31
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	//Définition optionnelle
    	//Permet d'avertir l'utilisateur de la fin de la tâche asynchrone
         protected void onPostExecute(Long result) {
         	//Code exécuté dans l'UI thread
             showDialog("Downloaded " + result + " bytes");
         }
    Si c'est juste pour avertir l'utilisateur de la fin de la tache pourquoi je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
           	ListView list = (ListView)findViewById(R.id.listalarm);
            	list.setAdapter(new SimpleAdapter(BDDAlarm.this, res,R.layout.listitem, new String[]{"ID_ALARM","ID_OBJECT" },new int[] { R.id.idAlarmTextView,R.id.idObjectTextView }));
    dans le onPostExecute il ne faudrait pas le faire avant?

  12. #32
    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
    Le onPostExecute est pour le traitement après ton calcul long est celui-ci permet de récupérer la valeur calculer. Mais surtout il s'execute dans le UIThread et donc là tu peux faire des modifications sur l'affichage.

    Apres pour ton problème de null, normalement si ton objet list est bien dans ton /layout/main.xml ça devrait marcher.
    Pour ete sur j'ai faire un petit 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
     
    package com.rien;
     
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    import android.app.Activity;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.widget.ListView;
    import android.widget.SimpleAdapter;
     
    public class MainActivity extends Activity {
     
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
     
    		new AsyncTask<Void, Void, List<Map<String, Object>>>() {
     
    			protected List<Map<String, Object>> doInBackground(Void... rien) {
    				List<Map<String, Object>> res = new ArrayList<Map<String, Object>>();
     
    				for (int i = 0; i < 10; i++) {
    					Map<String, Object> map = new HashMap<String, Object>();
    					map.put("ID_ALARM", i * 10);
    					map.put("ID_OBJECT", i * 200);
    					res.add(map);
    				}
     
    				return res;
    			}
     
    			protected void onPostExecute(List<Map<String, Object>> res) {
    				ListView list = (ListView) findViewById(R.id.list);
    				list.setAdapter(new SimpleAdapter(MainActivity.this, res,
    						R.layout.list_item, new String[] { "ID_ALARM",
    								"ID_OBJECT" }, new int[] { R.id.text1,
    								R.id.text2 }));
    			}
    		}.execute();
    	}
    }
    Ensuite j'ai un main.xml dans le layout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:orientation="vertical" android:layout_width="fill_parent"
    	android:layout_height="fill_parent">
    	<ListView android:id="@+id/list" android:layout_width="fill_parent"
    		android:layout_height="fill_parent" />
    </LinearLayout>
    Et un list_item.xml dans le layout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    	android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight"
    	android:orientation="vertical" android:padding="6dip">
    	<TextView android:layout_width="fill_parent"
    		android:layout_height="0dip" android:layout_weight="1" android:id="@+id/text1" />
    	<TextView android:layout_width="fill_parent"
    		android:layout_height="0dip" android:layout_weight="1" android:id="@+id/text2" />
    </LinearLayout>
    Et ça fonctionne sur du android 2.2

  13. #33
    Invité
    Invité(e)
    Par défaut
    Effectivement j'avais un problème dans mon listitem.xml, j'avais mis wrap_content au lieu de fill_parent sur un android:layout_width

    Du coup là je n'ai plus d'erreur, par contre je n'affiche que l'ID_ALARM et pas l'ID_OBJECT, je vais continuer à chercher pour ce pb d'affichage mais dans l'ensemble c'est ce que je voulais =D merci

    ---EDIT---

    c'est bon, il faut juste que je code bien mes layout ^^
    Dernière modification par Invité ; 15/06/2011 à 11h12.

  14. #34
    Invité
    Invité(e)
    Par défaut
    J'aimerais ajouté un 3éme item à ma liste (qui existe dans ma bdd) donc j'ai rajoutées et modifiées les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     map.put("ID_GROUP",json_data.getInt("ID_GROUP"));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Log.i("log_tag","ID_ALARM: "+json_data.getInt("ID_ALARM")+ ", ID_OBJECT: "+json_data.getInt("ID_OBJECT")+ ", ID_GROUP: "+json_data.getInt("ID_GROUP"));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.setAdapter(new SimpleAdapter(BDDAlarm.this, res,R.layout.listitem, new String[]{"ID_ALARM","ID_OBJECT" },new int[] { R.id.idAlarmTextView,R.id.idObjectTextView,R.id.idGroupTextView}));
    Pour le log.i aucun problème, j'affiche bien mon 3éme item dans le logcat
    Par contre mon programme provoque une fermeture forcée dont les erreurs sont :
    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
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006): FATAL EXCEPTION: main
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006): java.lang.ArrayIndexOutOfBoundsException
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.SimpleAdapter.bindView(SimpleAdapter.java:160)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.SimpleAdapter.createViewFromResource(SimpleAdapter.java:126)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.SimpleAdapter.getView(SimpleAdapter.java:114)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.AbsListView.obtainView(AbsListView.java:1315)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.ListView.measureHeightOfChildren(ListView.java:1198)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.ListView.onMeasure(ListView.java:1109)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.View.measure(View.java:8171)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.View.measure(View.java:8171)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.View.measure(View.java:8171)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.View.measure(View.java:8171)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.View.measure(View.java:8171)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.os.Handler.dispatchMessage(Handler.java:99)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.os.Looper.loop(Looper.java:123)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at java.lang.reflect.Method.invokeNative(Native Method)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at java.lang.reflect.Method.invoke(Method.java:521)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    06-15 09:24:13.360: ERROR/AndroidRuntime(1006):     at dalvik.system.NativeStart.main(Native Method)
    ArrayIndexOutOfBonds signifie-t-il que mon arraylist est limité à 2 item? :s ou ai-je oublié de rajouter quelquechose dans mon code?

  15. #35
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new String[]{"ID_ALARM","ID_OBJECT", "ID_GROUP" }
    Tu devrais aller lire le fonctionnement du SimpleAdapter pour comprendre pourquoi on lui donne une array de string et d'id. Ils sont là pour que SimpleAdapter puisse faire le mappage entre ta liste de map, et ton listitem

  16. #36
    Invité
    Invité(e)
    Par défaut
    c'était une erreur bête merci je vais relire mieux la doc

  17. #37
    Invité
    Invité(e)
    Par défaut
    Je reviens avec un problème un peu différent (dites-mois si je peux continuer sur ce forum ou si il faut que je crée un nouveau sujet)
    J'ai chercher sur google et tout le site developpez.net, mais je n'ai pas vraiment trouver de réponse.

    J'aimerais afficher un des items de ma liste dans une nouvelle activity. Mais je ne suis pas sure de la méthode à suivre.
    Ma question serait comment récupérer uniquement les infos de mon item dans ma bdd et les afficher dans une nouvelle activité?

    Soit je lance mon activité et depuis cette activité j'accéde à ma bdd et je fais une réquête pour afficher les infos que je souhaite afficher, dans ce cas comment effectuer cette requête? (avez-vous des liens pour m'aider ou des tutos)
    Soit je récupére ces infos depuis ma premiére activité, mais dans ce cas comment isolé les informations de chaque item étant donné que dans cette première activité je récupére la totalité de ma bdd.

    Merci de votre aide

    ---EDIT---
    Pour le moment dans ma deuxième activité j'affiche juste du texte prédéfinie dans un layout

    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 BDDAlarm extends Activity{
        /** Called when the activity is first created. */
    	public static final String strURL = "http://10.0.2.2:8080/mesRequestes/Alarm.php";    
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            new AsyncTask<Void,Void,List<Map<String,Object>>>()
            {
    			@Override
    			protected List<Map<String, Object>> doInBackground(Void... voids) 
    			{
              	   List<Map<String, Object>>  res = new ArrayList<Map<String, Object>>();
                   InputStream is = null;  
                   String result = "";  
                   ArrayList<NameValuePair> listAlr = new ArrayList<NameValuePair>();  
                   listAlr.add(new BasicNameValuePair("alarm",""));  
                   try{  
                       HttpClient httpclient = new DefaultHttpClient();
                       HttpPost httppost = new HttpPost(strURL);  
                       httppost.setEntity(new UrlEncodedFormEntity(listAlr));  
                       HttpResponse response = httpclient.execute(httppost);    
                       is = response.getEntity().getContent(); 
     
                   }catch(Exception e)
                   {  
                       Log.e("log_tag", "Error in http connection " + e.toString());  
                   }  
     
                   try{  
                   	BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
                   	StringBuilder sb = new StringBuilder();  
                       String line = null;  
                       while ((line = reader.readLine()) != null) 
                       {  
                           sb.append(line + "\n");  
                       }  
                       is.close();  
                       result=sb.toString();  
                       Log.i("result", result);
                   }catch(Exception e)
                   {  
                       Log.e("log_tag", "Error converting result " + e.toString());  
                   }   
                   try{  
                      JSONArray jArray = new JSONArray(result);  
                       for(int i=0;i<jArray.length();i++)
                       {  
                          JSONObject json_data = jArray.getJSONObject(i);  
     
                           Map<String, Object> map = new HashMap<String, Object>();
                           map.put("ID_ALARM", json_data.getInt("ID_ALARM"));
                           map.put("ID_OBJECT", json_data.getInt("ID_OBJECT"));
                           map.put("ID_GROUP",json_data.getInt("ID_GROUP"));
                           map.put("ID_PLACE", json_data.getInt("ID_PLACE"));
                           map.put("TIME_ALARM",json_data.getString("TIME_ALARM"));
                           res.add(map); 
                           Log.i("log_tag","ID_ALARM: "+json_data.getInt("ID_ALARM")+ ", ID_OBJECT: "+json_data.getInt("ID_OBJECT")+ ", ID_GROUP: "+json_data.getInt("ID_GROUP"));  
                       }  
                   }catch(JSONException e)
                   {  
                       Log.e("log_tag", "Error parsing data " + e.toString());  
                   }  
                  return res;
    			}
               protected void onPostExecute(List<Map<String,Object>> res)
               {
            	ListView list = (ListView)findViewById(R.id.listalarm);
            	list.setAdapter(new SimpleAdapter(BDDAlarm.this, res,R.layout.listitem, new String[]{"ID_ALARM","ID_OBJECT","ID_GROUP","ID_PLACE","TIME_ALARM" },new int[] { R.id.idAlarmTextView,R.id.idObjectTextView,R.id.idGroupTextView,R.id.idPlaceTextView,R.id.idTimeAlarm}));
                list.setOnItemClickListener(new OnItemClickListener(){
    				@Override
    				public void onItemClick(AdapterView<?> arg0, View v,int position, long arg3) {
    					lancementDetailAlarm(position);
    					System.out.println("Long click");					
    				}
     
                });
     
               }   
            }.execute(); 
        }
     
    	/**----------------------Method----------------------------*/
     
    	private void lancementDetailAlarm(int position) {
          	Intent intenalr1 = new Intent();
          	intenalr1.setClass(this, DetailsAlarm.class);
    	    startActivity(intenalr1);
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class DetailsAlarm extends Activity{
     
    	public void onCreate(Bundle savedInstanceState) 
    	{ 
    	    super.onCreate(savedInstanceState); 
    	    setContentView(R.layout.detailsalarm);
     
    	}
    }

  18. #38
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Une recherche sur "afficher détail item" me donne ça comme résultat :
    http://www.developpez.net/forums/d97...teur-flux-rss/

    tu as des éléments de réponses dedans.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  19. #39
    Invité
    Invité(e)
    Par défaut
    Merci pour le lien, mais j'avais déja réussi à afficher des détails dans une autre activité mais je ne passer pas par une bdd, là j'aimerais savoir si je dois créer une nouvelle requette dans ma deuxième activité ou si je peux récupérer des données de ma première activité pour m'en servir dans la deuxième.

    Je ne sais pas si je suis trés clair :s

  20. #40
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Vu les renseignements que tu nous as donné, il est difficile de te donner la bonne réponse.
    Cela dépend de la volumétrie de ta base, de la complexité de tes requêtes pour récupérer un item, du nombre de données (et leurs types) à afficher, etc.

    Les deux solutions sont possibles.
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Aide pour afficher une valeur dans une BDD MysQl
    Par cybermembre dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/11/2012, 20h14
  2. Affichage des données d'une table MySQL dans un ListView selon l'id
    Par loviso dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 30/07/2012, 16h28
  3. [Débutant] afficher une table d'une BDD MySql dans un combobox multicolonnes
    Par vbcasio dans le forum VB.NET
    Réponses: 4
    Dernier message: 24/06/2011, 11h32
  4. [Listview] Remplissage à partir d'une bdd mysql
    Par Cybher dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/07/2005, 09h32
  5. Changements de colonnes dans une BDD MySQL
    Par arnaud_verlaine dans le forum Requêtes
    Réponses: 8
    Dernier message: 07/08/2003, 11h33

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