Í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