Utilizzando come base di parenza l'esempio Esempio SimpleAdapter con layout custom verra' creato un layout che contiene un'immagine. Creare un nuovo progetto android chiamato HelloSimpleAdapter3 utilizzando come base il progetto Esempio SimpleAdapter con layout custom Copiare nella cartella res/drawable le icone delle bandiere contenute nell'archivio bandiere.zip Aggiungere al file strings.xml un array contenente i nomi dei file senza l'estensione .png <string-array name="bandiere"> <item>bandiera_italia</item> <item>bandiera_paesi_bassi</item> <item>bandiera_spagna</item> <item>bandiera_brasile</item> <item>bandiera_marocco</item> <item>bandiera_thailandia</item> </string-array> Modificare l'activity in modo da caricare nella lista di mappe anche il nome della bandiera String[] bandiere = getResources().getStringArray(R.array.bandiere); for (int i = 0; i < paesi.length; i++) { ... ... mappa.put("bandiera", bandiere[i]); } Modificare il layout main.xml aggiungendo un componente ImageView che conterra' l'immagine della bandiera <LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_width="match_parent"> <ImageView android:layout_height="wrap_content" android:id="@+id/imageViewBandiera" android:src="@drawable/icon" android:layout_width="wrap_content"></ImageView> <TextView android:layout_height="wrap_content" android:text="PAESE" android:textAppearance="?android:attr/textAppearanceLarge" android:id="@+id/textViewPaese" android:layout_width="match_parent" android:gravity="center"></TextView> </LinearLayout> Ridefinire il metodo getView() dell'adapter in modo da caricare l'immagine ListAdapter adapter = new SimpleAdapter( this, dati, R.layout.main, new String[]{"paese","superficie","popolazione", "continente","moneta"}, new int[]{R.id.textViewPaese,R.id.textViewSuperficie, R.id.textViewPopolazione,R.id.textViewContinente, R.id.textViewMoneta} ){ @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); ImageView bandiera = (ImageView)view.findViewById(R.id.imageViewBandiera); Map<String,String> data = (Map<String,String>)getItem(position); bandiera.setImageResource( getResources() .getIdentifier( data.get("bandiera"), "drawable", getPackageName() ) ); return view; } };
|
|||||||||

