Hai qualche Consiglio/Critica/Suggerimento relativo al forum? Diccelo qui.Ti entusiasma l'idea di un forum italiano di Android? Vorresti partecipare in qualche modo?Scrivi un Tutorial o fai richiesta di ammissione nello Staff
public class Utility { public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); }}
Utility.setListViewHeightBasedOnChildren(myListView);
private void popola (){ ListView listViewCategorie = (ListView) findViewById(R.id.categorieList); ListView listViewProdotti = (ListView) findViewById(R.id.prodottiList); listViewCategorie.setAdapter(popolaCategorie()); Utility.setListViewHeightBasedOnChildren(listViewCategorie); listViewProdotti.setAdapter(popolaProdotti()); Utility.setListViewHeightBasedOnChildren(listViewProdotti); }private ArrayAdapter<CategoriaVO> popolaCategorie() { categorieChild = ((MovyloshopApplication)getApplication()).getCategories(); /* * qui costruisco l'intent view */ // Otteniamo il riferimento alla ListView //ListView listView = (ListView) findViewById(R.id.categoriaList); ArrayAdapter<CategoriaVO> arrayAdapter = new ArrayAdapter<CategoriaVO>( this, R.layout.category_item, R.id.nomeCategoria, categorieChild) { @Override public View getView(int position, View convertView, ViewGroup parent){ return getViewHolder(position,convertView,parent); } public View getViewHolder(int position, View convertView, ViewGroup parent) { CategorieHolder categoryHolder = null; if (convertView == null) { LayoutInflater inflater =(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.category_item, null); //creo un oggetto con il riferimento alla classe x i titoli(holder) categoryHolder = new CategorieHolder(); categoryHolder.name = ((TextView)convertView.findViewById(R.id.nomeCategoria)); categoryHolder.infoCategoria = ((TextView)convertView.findViewById(R.id.infoCategoria)); categoryHolder.imageThumb =(ImageViewExtended)convertView.findViewById(R.id.categoriaImmagineThumb); convertView.setTag(categoryHolder); }else{ categoryHolder=(CategorieHolder)convertView.getTag(); } CategoriaVO c = getItem(position); categoryHolder.name.setText(c.id+" "+c.name); categoryHolder.infoCategoria.setText( "(c:"+ c.num_of_subcat+"|p:"+c.num_of_prod+ ")" ); categoryHolder.imageThumb.setImageHref(c.image); //convertView.setTag(c.id); return convertView; } }; // Lo impostiamo come adapter della listView //listView.setAdapter(arrayAdapter); return arrayAdapter; } //prodottiVO molto smile, cambia l'xml layout ovviamente
<TextView android:id="@+id/nomeCategoriaPrincipale" style="@style/titoloNero" android:text="nome categoria" /> <ListView android:id="@+id/categorieList" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/green" > </ListView> <ListView android:id="@+id/prodottiList" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView>