Esiste un modo per ottenere l'ID risorse (come R.layout.viewtoInflate) del layout da cui è stata gonfiata una visualizzazione?Ottieni l'ID risorsa da cui è stata gonfiata la visualizzazione
Sto tentando di implementare una visualizzazione elenco che utilizza 2 layout personalizzati per gli elementi dell'elenco. Il layout dell'articolo utilizzato è basato su un campo negli oggetti utilizzati per popolare la vista elenco.
Quello che mi manca nel mio adattatore personalizzato è un modo per sapere quale risorsa è stata gonfiata da "convertView" che ottengo in getView(). Se riesco a ottenere quelle informazioni posso confrontare e determinare se posso riutilizzare la visualizzazione convert come è o se devo sostituirlo con il layout appropriato per l'elemento corrente.
Quindi idealmente sarebbe qualcosa di simile:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
JSONObject currItem = mItems.getJSONObject(position);
int layoutType;
if (currItem.getBoolean("alternate"))
layoutType = R.layout.list_item_b;
else
layoutType = R.layout.list_item_a;
if (convertView == null || <convertView.resourceID> != layoutType) {
convertView = inflater.inflate(layoutType, null);
//Finish setting up new View and its holder
}
else {
//Get view holder for view reuse
}
//populate view with the required content
return convertView;
}
Nel peggiore dei casi ho potuto solo Non riutilizzare vista a tutti e basta gonfiare il layout ho bisogno ogni volta, ma sembra molto dispendioso.
Non capisco come ho perso questa funzionalità multi-layout ma grazie. Grazie anche per il suggerimento per trovare il tipo di layout, non più necessario per ora, ma buono a sapersi comunque. Tuttavia, mi sembra strano che non ci sia un modo ufficiale per ottenere il layout di una vista gonfiata. – RobertoCuba