Viewholder model în punerea în aplicare a listei ListView, programare pentru Android

Model ViewHolder. în conformitate cu unele, poate creste productivitatea lista ListView 15-20%, ceea ce este foarte relevant pentru seturi mari de date. În acest articol ne vom uita la doar un exemplu de acest model.

Viewholder model în punerea în aplicare a listei ListView, programare pentru Android

Esența șablon ViewHolder - este de a evita multe elemente de căutare în listă, atunci când este plin folosind metoda findViewById (). care consumă doar o mulțime de resurse de sistem. În acest scop, o statică clasa interioară ViewHolder specială. care are întotdeauna o referință la elementele necesare. Mai degrabă decât în ​​mod constant „pull» findViewById (). Acest lucru se poate face o singură dată și de a salva link-ul din ViewHolder. Să considerăm un exemplu simplu.

Aspect pentru activitã - res / aspect / activity_main.xml

Aspect pentru un res singur element / aspect listă / list_item.xml

Crearea unui adaptor de clasă DataAdapter.java (moștenită de la BaseAdapter)

Aici vom vedea o ViewHolder clasă interioară. care va stoca o referință la TextView

După cum se vede din codul, o getView metoda (). noi „pereispolzuem“ vechi View, nu pentru a crea altele noi. De asemenea, are efecte benefice asupra utilizării resurselor de memorie. Dacă nu există nici un vechi convertView, vom crea și umple nou. O referire la TextView ne păstra în ViewHolder:

Salvați și obțineți acces la ViewHolder folosind setTag () și getTag (). Cu mai multe recursuri, de fapt, având în link-ul de dreapta, am imediat textul Sette:

A se vedea, de asemenea:

  • Viewholder model în punerea în aplicare a listei ListView, programare pentru Android
    SwipeRefreshLayout - exemplu de utilizare
  • Viewholder model în punerea în aplicare a listei ListView, programare pentru Android
    Pattern ViewPager - exemplu de utilizare
  • Viewholder model în punerea în aplicare a listei ListView, programare pentru Android
    Filtrul de căutare și un adaptor personalizat pentru a ListView

articole similare