Frage

I would like to implement a ListView that is automatically updated with any changes to the local db (Observer Pattern). I have read that Loaders and ContentProviders do not play nicely with greenDAO as of now, so I would like to know the recommended approach?

War es hilfreich?

Lösung

you can add your own listener (observer or propertychangeListener) like I do here for updating a listView when add or delete something :

public static Object objj = new Object();
static PropertyChangeSupport pcs = null ;
private static PropertyChangeSupport getPropertyChangeSupport(){

    if(pcs==null){
        pcs = new PropertyChangeSupport(objj);
    }

    return pcs;

}

public void addTrace(Traces Trace){
    DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "pib", null);
    SQLiteDatabase db = helper.getReadableDatabase();
    DaoMaster daoMaster = new DaoMaster(db);
    DaoSession daoSession = daoMaster.newSession();
    TracesDao DAO1= daoSession.getTracesDao(); 
    DAO1.insert(Trace);
    getPropertyChangeSupport().firePropertyChange("addTrace", 0, Trace);

}

this above can be done in database controller ... in the class where my listView is I intercept the event like this:

public class ListFragment extends Fragment implements PropertyChangeListener { 
       public void propertyChange(PropertyChangeEvent evt) {
           if (evt.getPropertyName().equals("addTrace")) {
                final Traces tempTrace = (Traces) evt.getNewValue();
                listTraces = DoaConroler.ListTraces();
                showBriefingActivity.runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        createListBriefing();
                        // fillListItem(tempTrace);
                    adapterFirstLevel.notifyDataSetChanged();

                }
            });
        }

Andere Tipps

Sorry, currently there are no observer listeners implemented. This may change in the future.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top