Hirdetés
- Yettel topik
- Google Pixel topik
- One mobilszolgáltatások
- Szívós, szép és kitartó az új OnePlus óra
- Apple iPhone 16 - ígéretek földje
- iPhone topik
- Mobil flották
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Vivo X300 Ultra - tárcsázz, ha van rá keret!
Új hozzászólás Aktív témák
-
Sianis
addikt
válasz
lordjancso
#1407
üzenetére
Ez nem nyerő?
Sianis
-
SektorFlop
aktív tag
válasz
lordjancso
#1355
üzenetére
köszi

-
lordjancso
senior tag
válasz
lordjancso
#1307
üzenetére
Egyelőre a legjobbnak tűnő megoldás:
@Override
public void onDestroyView() {
super.onDestroyView();
setListAdapter(null);
} -
Karma
félisten
válasz
lordjancso
#1304
üzenetére
A ListView addHeaderView metódusa nem jó erre? Az adapter beállítása előtt hívd meg.
-
lordjancso
senior tag
válasz
lordjancso
#1302
üzenetére
Na még jó, hogy a hibaüzenetben ott van a válasz, csak nem gondoltam, hogy ilyen triviális lesz...
A megoldás annyi volt, hogy az xml-ben lévő ListView-nak fixen az alábbi id-t kell adni:
android:id="@android:id/list" -
Karma
félisten
válasz
lordjancso
#1238
üzenetére
Hm. Megpróbálhatnád azt, hogy felüldefiniálod a setBounds metódust az UrlDrawable-ben úgy, hogy a tagváltozóba rakott képre is meghívja azt, ugyanazokkal a paraméterekkel.
Mondjuk célszerű azt az esetet is kezelni, ha még null a kép, és majd a jövőben jön létre. Az előző bekezdésben leírt módosításon túl az onPostExecute-ban fel kell cserélned az urlDrawable.drawable = result sort a setBoundsszal, így az új méret mindkét objektumra hat.
-
Karma
félisten
válasz
lordjancso
#1236
üzenetére
Az onPostExecute-ban van egy setBounds hívás, azt kell módosítanod úgy, hogy azt csinálja amit szeretnél.
-
Karma
félisten
válasz
lordjancso
#1233
üzenetére
Bevallom sose használtam az ImageGetter megoldást, ha HTML-t kellett megjeleníteni, mindig a WebView-t preferáltam. Kicsit keresgélve úgy tűnik, hogy az invalidate hívás tényleg nem rendezi újra a tartalmat.
Workaroundot láttam: a WeakReference<View> helyett WeakReference<TextView>, és az invalidate helyett kell egy c.setText(c.getText()) hívás.
-
Karma
félisten
válasz
lordjancso
#1221
üzenetére
Semmi nagy dologra nem gondoltam, két dolgot változtatnék a példán a rend kedvéért:
1) Ahogy nézem, nem használja fel az URLImageGetter a konstruktorban átadott Contextet, úgyhogy a tagváltozót és a paramétert törölném azonnal. Ha meg mégis kéne, akkor a View-tól kérném el.
2) A container tagváltozója ugyanennek az osztálynak erősen kapaszkodik (hard reference) a View-ba, úgyhogy ha mondjuk a letöltés tíz percig tart, a felhasználó már régen továbbállt mert megunta, akkor se tudja a GC felszabadítani az egész Activityt.
Könnyen elkerülhető, ha a container tagváltozó nem View, hanem WeakReference<View> típusú. Két sort kell módosítani hozzá, és máris nem akadályozza a GC-t – csak le kell ellenőrizni onPostExecute-ban, hogy megvan-e még a View, vagy már vége.public class URLImageParser implements ImageGetter {
WeakReference<View> container;
public URLImageParser(View t) {
this.container = new WeakReference<View>(t);
}
public class ImageGetterAsyncTask extends AsyncTask<String, Void, Drawable> {
URLDrawable urlDrawable;
...
@Override
protected void onPostExecute(Drawable result) {
View c = URLImageParser.this.container.get();
if (c == null) return;
...
// redraw the image by invalidating the container
c.invalidate();
}
...
}
}[ Módosította: doc ]
-
Karma
félisten
válasz
lordjancso
#1219
üzenetére
Javaslom ezt a StackOverflow kérdést és az elfogadott válaszát megtekintésre. Mivel a TextView adott, csak az ImageGetter interfészt tudnád használni, arra meg ez egy járható megoldásnak tűnik.
Bár én biztosan WeakReference-et raknék el a View-hoz.
-
Karma
félisten
válasz
lordjancso
#1204
üzenetére
Azt vágod, hogy az onCreate-ben egy lokális változót hoztál létre, miközben az osztályod tagváltozója soha nem kap (az indító nullon kívül) értéket? Vedd ki az "ArticleAdapter" típusnevet az értékadás előtt.
-
Sianis
addikt
válasz
lordjancso
#1201
üzenetére
A példányosított adapter nem null? A getCount() metódusa nem 0-t ad vissza? a getView() nem üres vagy null view-kat ad vissza?
Sianis
Új hozzászólás Aktív témák
Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- OLED TV topic
- Yettel topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Eljött a CPU-k kora az AI-piacon
- Polgári repülőgép-szimulátorok
- AliExpress tapasztalatok
- hcl: Olympus E-PL1 nyomozás
- PlayStation 5
- One otthoni szolgáltatások (TV, internet, telefon)
- További aktív témák...
- 280 - Lenovo Legion Pro 5 (16IAX10H) - Intel Core U9 275HX, RTX 5070Ti (ELKELT)
- 223 - Lenovo LOQ (15IRX10) - Intel Core i5-13450HX, RTX 5060
- BESZÁMÍTÁS! Gigabyte Z390 i7 9700KF 16GB DDR4 512GB SSD GTX 1070 Ti 8GB Cooler MasterCM 690 III 550W
- AKCIÓ! Asrock Z270 i7 6700K 16GB DDR4 512GB SSD RTX 2060 6GB GameMax Storm 2 AB Adata 600W
- DAHUA 16GB DDR4 2666 MHz laptop RAM
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


