ローカル db (オブザーバー パターン) への変更で自動的に更新される ListView を実装したいと思います。Loaders と ContentProviders は現在 greenDAO でうまく動作しないことを読んだので、推奨されるアプローチを知りたいですか?
質問する
1994 次
2 に答える
3
何かを追加または削除するときに listView を更新するためにここで行うように、独自のリスナー (オブザーバーまたは propertychangeListener) を追加できます。
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);
}
上記のこれは、データベースコントローラーで実行できます...私のlistViewがあるクラスで、次のようにイベントをインターセプトします。
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();
}
});
}
于 2013-01-18T10:59:00.513 に答える
2
申し訳ありませんが、現在実装されているオブザーバー リスナーはありません。これは将来変更される可能性があります。
于 2012-12-18T22:04:48.107 に答える