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 :

ListView statique et dynamique


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 48
    Points : 40
    Points
    40
    Par défaut ListView statique et dynamique
    j'ai une listview dynamique (jai utilisé XML parser pour parser les données à partir de web service )
    et maintenant je veux ajouter 4 item à cette liste view dynamique

    ArrayList<String> maListe_principale = new ArrayList<String>();

    maListe_principale.add(" Accueil" );
    maListe_principale.add(" item1" );
    maListe_principale.add(" item2" );
    maListe_principale.add(" item3" );
    maListe_principale.add(" item4" );


    voila mon code :

    la premiere classe contient les getters et setters
    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
    package com.example.fadda;
     
     
    public class ItemStructure {
     
     
    		private String name ;
    		private String description ;
    		private String thumbnail ;
    		public String getName() {
    			return name;
    		}
    		public void setName(String name) {
    			this.name = name;
    		}
    		public String getDescription() {
    			return description;
    		}
    		public void setDescription(String description) {
    			this.description = description;
    		}
    		public String getThumbnail() {
    			return thumbnail;
    		}
    		public void setThumbnail(String thumbnail) {
    			this.thumbnail = thumbnail;
    		}
     
     
    	}
    cette classe contient adapter :
    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
    package com.example.fadda;
     
    import java.net.URI;
    import java.util.ArrayList;
    import java.util.List;
     
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.TextView;
     
    public class ListAdapter extends ArrayAdapter<ItemStructure> {
        //mapData is an hashmap of hotelId vs arraylist, 
        private ArrayList<ItemStructure> reservationdata;
        private Context ctx;
        URI url = null;
        private LayoutInflater mInflater;
     
        public ListAdapter(Context context, int textViewResourceId,
                ArrayList<ItemStructure> reservationdata) {
            super(context, textViewResourceId, reservationdata);
            this.reservationdata = reservationdata;
            this.ctx = context;
            this.mInflater = LayoutInflater.from(context);
        }
     
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if (v == null) {
     
                v = mInflater.inflate(R.layout.item_activity, null);
     
            }
            final ItemStructure o = reservationdata.get(position);
            if (o != null) {
                TextView Title = (TextView) v.findViewById(R.id.TextView01);
     
     
     
     
     
                Title.setText(o.getName());
     
            }
            return v;
        }
     
    }
    cette classe contient l'activity principale :
    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    package com.example.fadda;
     
    import java.io.IOException;
    import java.util.ArrayList;
     
    import org.apache.http.client.ClientProtocolException;
     
    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.content.Context;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.ListView;
    import android.widget.Toast;
     
    public class MainActivity extends Activity {
    	private Object TestAsyncTask;
    	private ListAdapter htlAdapt = null;
    	private ListView htlListView = null;
    	private String name;
     
    	private ItemStructure reservationdata = new ItemStructure();
    	static ArrayList<ItemStructure> Content = new ArrayList<ItemStructure>();
     
    	/** Called when the activity is first created. */
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		// setContentView(R.layout.main);
    		setContentView(R.layout.activity_main);
    		// TextView hotelname=(TextView)findViewById(R.id.slist);
    		htlListView = (ListView) findViewById(R.id.list);
    		htlAdapt = new ListAdapter(this, R.layout.item_activity, Content);
    		htlListView.setAdapter(htlAdapt);
    		getURL("http://www.example.net/blabla.xml");
     
    	}
     
    	@Override
    	protected void onResume() {
    		// TODO Auto-generated method stub
    		super.onResume();
     
     
    	}
     
    	public void getURL(String url) {
    		TestAsyncTask test = new TestAsyncTask();
     
    		test.setContext(this);
     
    		test.execute(url);
    	}
     
    	class TestAsyncTask extends
    			AsyncTask<String, Void, ArrayList<ItemStructure>> {
     
    		// private String Content;
     
    		ArrayList<ItemStructure> Contents = null;
    		private String Error = null;
    		private ProgressDialog Dialog;
    		private Context ctx;
     
    		public void setContext(Context ctx) {
    			this.ctx = ctx;
    		}
     
    		protected void onPreExecute() {
    			Dialog = new ProgressDialog(ctx);
    			Dialog.setMessage("Loading Data...");
     
    			Dialog.show();
    		}
     
    		protected ArrayList<ItemStructure> doInBackground(String... urls) {
     
    			try {
     
    				Log.i("INFOOOOOO", "++++++++1");
    				Contents = URLHelper.executeRequest();
     
    				Log.i("INFOOOOOO", "++++++++" + Contents.size());
    			} catch (ClientProtocolException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			} catch (IOException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
     
    			return Contents;
    		}
     
    		protected void onPostExecute(ArrayList<ItemStructure> content) {
     
     
    			if (Error != null) {
    				Toast.makeText(ctx, "Pls Try Again  " + Error,
    						Toast.LENGTH_LONG).show();
    			} else {
    				updateView(content);
     
    			}
    			Dialog.dismiss();
    		}
    	}
     
    	private void updateView(ArrayList<ItemStructure> content) {
     
    		this.Content.clear();
     
    		this.Content.addAll(content);
     
    		this.htlAdapt.notifyDataSetChanged();
    	}
    	public String getName1() {
    		return name;
    	}
     
    	public void setTitle1(String name) {
    		this.name = name;
    	}
     
    }
    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
    package com.example.fadda;
     
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
     
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.DefaultHttpClient;
     
    import android.util.Log;
     
    public class URLHelper {
        /** Called when the activity is first created. */
     
     
        @SuppressWarnings("unchecked")
        public static ArrayList<ItemStructure> executeRequest( ) throws ClientProtocolException, IOException
    {
     
            //AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
            HttpClient client = new DefaultHttpClient();
     
            String response= "";            
        ArrayList<ItemStructure> resarrHotelList= null;
        ArrayList <NameValuePair> params = new ArrayList<NameValuePair>();
        String url1 = "http://www.example.net/blabla.xml";                              
                  HttpGet getUrl = new HttpGet(url1);
                  HttpResponse httpResponse = client.execute(getUrl);              
              HttpEntity entity = httpResponse.getEntity();              
            if (entity != null) {                      
                 InputStream instream = entity.getContent();                  
                 XMLparsing fdParser = new XMLparsing(instream);
                 resarrHotelList = (ArrayList<ItemStructure>) fdParser.xmlParse();  
                 instream.close();
             }
     
        if(resarrHotelList!=null)
         Log.i("INFOOOO++++", "LIST"+resarrHotelList.size());
        //client.close();
        return resarrHotelList;
     
    }  
    }

    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
    package com.example.fadda;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
     
    import android.util.Log;
     
    public class XMLhandler extends DefaultHandler {
        //private ChannelList channelList = new ChannelList();
         private StringBuilder builder;
         public static List<ItemStructure> channelList;
          private ItemStructure chList;
        //  private RoomRate currentMessage=new RoomRate();
     
        @Override
        public void characters(char[] ch, int start, int length)
            throws SAXException {
            // TODO Auto-generated method stub
            super.characters(ch, start, length);
             String string = new String(ch, start, length).replaceAll("[\r\t\n]", "");
             builder.append(string);
     
        }
     
        @Override
        public void endElement(String uri, String localName, String title)
                throws SAXException {
              // TODO Auto-generated method stub
                super.endElement(uri, localName, title);
                if (chList != null){
     
                if (localName.equalsIgnoreCase("name"))
                {
                chList.setName(builder.toString());
                Log.i("111CITYYYYYYY", "++++++++"+chList.getName());
                }
     
                else if (localName.equalsIgnoreCase("description")){
                    chList.setDescription(builder.toString());
     
                }
                 else if (localName.equalsIgnoreCase("thumbnail")){
                    chList.setThumbnail(builder.toString());
     
                 }
     
     
     
                else if (localName.equalsIgnoreCase("channel")){
                    channelList.add(chList);
                }    
                builder.setLength(0);    
     
                }        
        }
        @Override
        public void startDocument() throws SAXException {
            // TODO Auto-generated method stub
            super.startDocument();
            channelList = new ArrayList<ItemStructure>();
             builder = new StringBuilder();
     
        }
        @Override
        public void startElement(String uri, String localName, String title,
                Attributes attributes) throws SAXException {
            // TODO Auto-generated method stub
            super.startElement(uri, localName, title, attributes);
             if (localName.equalsIgnoreCase("channel")){
                    this.chList = new ItemStructure();
                    builder.setLength(0);
                }
        }
        public List<ItemStructure> getChannelList() {
            return channelList;
        }
        public void setChannelList(List<ItemStructure> channelList) {
            this.channelList = channelList;
        }
     
    }
    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
    package com.example.fadda;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
     
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
     
    import org.xml.sax.SAXException;
     
     
     
    public class XMLparsing {
        private InputStream xmlInputStream;
     
        public XMLparsing(InputStream xmlInputStream){
              this.xmlInputStream = xmlInputStream;
            }
     
         public List<ItemStructure> xmlParse() throws IOException 
            {
                SAXParserFactory factory = SAXParserFactory.newInstance();
                List<ItemStructure> channellist=null;
            try {      
                SAXParser parser = factory.newSAXParser();
                XMLhandler handler = new XMLhandler();         
                parser.parse(this.getInputStream(),handler);
                return handler.getChannelList();        
            } catch (ParserConfigurationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SAXException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return channellist;  
        }
     
        private InputStream getInputStream() {
            // TODO Auto-generated method stub
            return xmlInputStream;
        }
    }

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    il te suffit de rajouter ces 7 éléments dans ta Content.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Discussions similaires

  1. Site statique et dynamique
    Par tnounou82 dans le forum Dépannage et Assistance
    Réponses: 2
    Dernier message: 23/04/2007, 12h58
  2. [RegEx] Trouver les appels statique et dynamique d'une class
    Par jeff_! dans le forum Langage
    Réponses: 8
    Dernier message: 07/04/2006, 16h31
  3. Agrégation: statique ou dynamique
    Par icer dans le forum C++
    Réponses: 13
    Dernier message: 04/03/2006, 15h48
  4. char *, string et tableau statique ou dynamique
    Par salseropom dans le forum C
    Réponses: 2
    Dernier message: 05/12/2005, 11h33
  5. Réponses: 2
    Dernier message: 19/08/2005, 16h02

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