Hirdetés
Új hozzászólás Aktív témák
-
thon73
tag
válasz
SektorFlop
#1412
üzenetére
Írtam egy kis programot hozzá. EZT vettem alapul. És ITT a bővített program zip formában.
A teljes arraylist-et az outputFragment kezeli. Amikor az inputFragment-en beírsz, az értéket elküldi az Activity-nek, az Activity pedig továbbküldi az outputFragment-nek. Ez utóbbi írja be a list-be, és frissíti a listát.
A Te esetedben nem az activity, hanem a db hordozza az adatot. De az array-t szerintem a listfragmentnek kéne kezelnie (vagy az activity-nek).
A lényeg: MINDENKÉPPEN jeleznie kell az inputFragmentnek a ListFragment irányába, hogy új elem érkezett!! Ezt nem fogja (szerintem) beépített on... metódus megtenni, neked kell megcsinálni. VAGY: a LOader osztály már megcsinálja "magától".A példa globális adapter változót használ, de a getListAdapter() is jó, csak a típusát módosítani kell (uis. nincs benne notifyDataSetChanged)
public void refreshOutput( String data )
{
// 1. érdekes: ez is működik
// lista.add( data );
// 2. adapter írja be - azonnal kiírja
// adapter.add( data );
// 3. invalidateviews - azonnal működik
// lista.add( data );
// getListView().invalidateViews();
// 4. notify
lista.add( data );
adapter.notifyDataSetChanged();
}A fenti kódban váltogasd a kommenteket, de szerintem nem ez a baj, hanem a ListFragment nem kap értesítést. ((Hogy az 1. példa miért működik, azt nem tudom, annak nem lenne szabad.
))Ja, igen. A forgatás (újraindítás) törli a listánkat, de most nem is ez volt a feladat. Neked meg a db úgyis megmarad.
Remélem segítettem
Új hozzászólás Aktív témák
- GEN5!!! 14/12GB/s 1TB Gen5x4 NVMe SSD, 1 év gar
- Kingston 1TB NVMe ÚJ, 3 év garival, brutál gyors!
- ÚJ akksi! GigaAKCIÓ! Lenovo ThinkPad P15 Gen 2 Intel i7-11850H 32GB 512GB Nvidia RTX A3000 1 év gar
- Samsung Galaxy S23 Ultra / 8/256GB / Kártyafügetlen / 12Hó Garancia
- AKCIÓ! Dell Precision 3571 4G LTE i7-12700H 32GB 1000GB FHD RTX A1000 4GB 1 év teljeskörű garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
))
