Originariamente inviato da
pino8314
Salve,
a cosa serve di preciso un LayoutInflater?
grazie
E' usato per creare delle View a runtime (sempre basate su xml). E' spesso necessario quando si customizzano pesantemente oggetti grafici di tipo GridView, ListView su degli Adapter (BaseAdapter, ArrayAdapter,...)
L'ho usato ultimamente in una GridView che visualizza degli Articoli, ti posto la classe se può esserti utile come esempio:
codice:
public class AdapterGrigliaArticoli extends BaseAdapter{
private Context context;
private final String[] listaArticoli;
private final String[] listaPrezziArticoli;
public AdapterGrigliaArticoli (Context context, String[] pListaArticoli, String[] pPrezziArticoli) {
this.context = context;
this.listaArticoli = pListaArticoli;
this.listaPrezziArticoli = pPrezziArticoli;
}
public View getView(int position, View convertView, ViewGroup parent) {
View gridView;
if (convertView == null) {
//gridView = new View(context);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
gridView = inflater.inflate(R.layout.cellarticoloframmento, null);
} else {
gridView = (View) convertView;
}
TextView textViewDescrizioneArticolo = (TextView) gridView.findViewById(R.id.textViewCellDescrizioneArticolo);
textViewDescrizioneArticolo.setText(listaArticoli[position].toString());
TextView textViewPrezzoArticolo = (TextView) gridView.findViewById(R.id.textViewCellPrezzoArticolo);
textViewPrezzoArticolo.setText(listaPrezziArticoli[position].toString() + " €");
return gridView;
}
@Override
public int getCount() {
return listaArticoli.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}