Új hozzászólás Aktív témák

  • WonderCSabo
    félisten

    Egyébként bizonyos esetekben a ListView egyik elemére kattintva(van listener) egy olyan kivételt kapok miszerint a ListView tartalma megváltozott de erről az nem értesült... ellenőrizzem hogy nem e változtatom meg a ListView tartalmát egy háttérszálból..... erről eszembe jutott hogy DE... igenis megváltoztatom háttérszálból a tartalmát... úgyhogy fogtam magam és átírtam a kódot úgy hogy az AsyncTask egy tömblistát tölt fel és az ebben lévő elemeket a főszálban hozzáadom az adapterhez.... de így egyáltalán nem jelennek meg az elemek....

    Karmának valószínűleg jó a sejtése. Az onCreateben elindítasz egy AsyncTaskot. Ezután rögtön lefut az onResume, ami meg is hívja a notifyDataSetChanged()-et, de túl korán, ilyenkor az AsyncTask még nem végzett, sőt még egy elem sincs benn ekkor az adapterben. A doInBackground-ban adogatsz hozzá az adapterhez, az adapter ekkor frissítené a ListView-t (már ha az ArrayAdapter.add() metódust hívod meg), de ez azért nem történik meg, mert háttérszálról hívod az addItem()-et.
    A megoldás itt elvileg az lenne, hogy az onPostExecute-ban hívsz egy notifyDataSetChanged()-et.

Új hozzászólás Aktív témák