- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Elektromos rásegítésű kerékpárok
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- eBay-es kütyük kis pénzért
- Kókuszdió: Tápegység – hova jutottunk 5 év alatt?
- mefistofeles: Az elhízás nem akaratgyengeség!
- btz: Internet fejlesztés országosan!
- sziku69: Szólánc.
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
#39560925
#3214
üzenetére
Azért sípol, mert nem használod ki a ListView újrahasznosító mechanizmusát, hanem folyamatosan új Viewkat fújatsz fel. Feltételezem, a warning buborék két findViewById hívást takar.
A tökéletes megoldásnak két lépése van, ebből az első a kritikus.
1) Használd a convertView paramétert! Ha nem null, akkor az egy olyan cella, ami kicsúszott a képből és így nincs rá szükség. Ebben az esetben az új cella létrehozása teljesen felesleges, ezt a viewt kellene bekonfigurálnod az új adatokhoz, megspórolva a példányosítást és a GC-zést.
View rowView = convertView != null
? convertView
: LayoutInflater.from(parent.getContext()).inflate(R.layout.exc_row_layout, parent, false);2) A ViewHolder minta ehhez képest már apróság, a findViewById hívásokat lehet megspórolni vele. Egy olyan custom classról van szó, aminek tagváltozóiba elteszed a TextViewk referenciáit (tehát gyártott viewnként egyszer kell keresni), a holdert pedig beállítod Tagként a cellán. Ha a convertView nem null, akkor elkéred a tagből a holdert, és azonnal írhatod az új adatokat.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
RowViewHolder viewHolder;
if (convertView == null) {
convertView = ... inflate ...;
viewHolder = new RowViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (RowViewHolder)convertView.getTag();
}
... values tömb ...
viewHolder.bindRow(values[position]);
return convertView;
}
... valahol lejjebb ...
private static class RowViewHolder {
private TextView nameView;
private TextView descView;
public RowViewHolder(View rowView) {
nameView = rowView.findViewById(...);
descView = rowView.findViewById(...);
}
public void bindRow(Exception model) {
nameView.setText(model.getName());
descView.setText(model.getDescription());
}
}
Új hozzászólás Aktív témák
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Cáfolja a Realme, hogy leépülne
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Életlen svájcibicska: Teszten az LG 45GX90SA okos gamer monitor
- A világ aktív okostelefonjainak negyede iPhone, ötöde Galaxy
- TCL LCD és LED TV-k
- Amlogic S905, S912 processzoros készülékek
- Overwatch 2
- Apple Watch Sport - ez is csak egy okosóra
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- Sigma 12-24mm f/4.5-5.6 EX DG HSM
- Eladó 4GB DDR4 laptop RAM-ok (SO-DIMM) többféle órajellel ( 10 darab )
- OHH! MSI CYBORG 15 Gamer Tervező Laptop 15,6" -30% i7-13620H 10Mag 16/512 RTX 4060 8GB FHD 144Hz
- ELADÓ 4 darab 8GB DDR4 ECC Registered (RDIMM) Szerver RAM modul
- Építőipari csomag (vakológépek, targoncák, építőipari eszközök és kellékek, egyéb, sok más)
- AKCIÓ!!! HP ZBook Power 15 G8 Mobile Workstation i7-11850H 32GB 1000GB Nvidia RTX A2000
- LENOVO Gaming topik - friss lista (2026.02.10)
- REFURBISHED és ÚJ - HP USB-C/A Universal Dock G2 (5TW13AA) (DisplayLink)
- BESZÁMÍTÁS! Intel Core i9 14900K 24 mag 32 szál processzor garanciával hibátlan működéssel
- iPhone 15 Pro Max 512GB 87% Esim-es verzió (3hónap Garancia) Kijelzőn pici folt!
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest

