i trying load data database loadercallbacks. onloadfinished function loadercallbacks not called. can see in log there rowcount of 1 returned list shows no entry onloadfinished not called can see.
seriefragment
public class seriefragment extends sherlocklistfragment implements loadercallbacks { private simplecursoradapter adapter; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); string[] = new string[] { dbcontract.episodes.name }; int[] = new int[] { r.id.name }; log.i("loadermanager", "starting..."); getloadermanager().initloader(0, null, this); adapter = new simplecursoradapter(getactivity(), r.layout.serie_list_item, null, from, to, 0); this.setlistadapter(adapter); } @override public void onviewcreated(view view, bundle savedinstancestate) { } @override public loader oncreateloader(int id, bundle args) { log.i("loadermanager", "creating loader..."); string[] projection = { dbcontract.episodes._id, dbcontract.episodes.name }; cursorloader cursorloader = new cursorloader(this.getactivity(), uri.parse(serieprovider.content_uri + "/episodes"), projection, null, null, null); return cursorloader; } @override public void onloadfinished(loader loader, cursor cursor) { log.i("loadermanager", "finished load entry... - cursor: " + cursor.getcount()); adapter.swapcursor(cursor); } @override public void onloaderreset(loader loader) { log.i("loadermanager", "resetting loader..."); adapter.swapcursor(null); }
contentprovider
public class serieprovider extends contentprovider { private static databasehelper database; private static final string provider = "com.drizzlyday.apps.episotron.providers"; private static final string base_path = "serieprovider"; public static final uri content_uri = uri.parse("content://" + provider + "/" + base_path); public static final int series = 1; public static final int episodes = 2; private static final urimatcher urimatcher; static { urimatcher = new urimatcher(urimatcher.no_match); urimatcher.adduri(provider, base_path, series); urimatcher.adduri(provider, base_path + "/episodes", episodes); } @override public boolean oncreate() { database = new databasehelper(getcontext()); return false; } @override public int delete(uri uri, string selection, string[] selectionargs) { // todo auto-generated method stub return 0; } @override public string gettype(uri uri) { // todo auto-generated method stub return null; } @override public uri insert(uri uri, contentvalues values) { // todo auto-generated method stub return null; } @override public cursor query(uri uri, string[] projection, string selection, string[] selectionargs, string sortorder) { log.d("provider", uri.tostring()); sqlitequerybuilder querybuilder = new sqlitequerybuilder(); int uritype = urimatcher.match(uri); switch (uritype) { case series: log.d("provider", "series"); querybuilder.settables(dbcontract.series.table_name); break; case episodes: log.d("provider", "episodes"); querybuilder.settables(dbcontract.episodes.table_name); break; default: throw new illegalargumentexception("unknown uri: " + uri); } sqlitedatabase db = database.getreadabledatabase(); sqlitecursor cursor = (sqlitecursor) querybuilder.query(db, projection, selection, selectionargs, null, null, sortorder); cursor.setnotificationuri(getcontext().getcontentresolver(), uri); log.d("provider", "cursor: " + cursor.tostring() + " - columncount: " + cursor.getcolumncount() + " - rowcount: " + cursor.getcount()); return cursor; } @override public int update(uri uri, contentvalues values, string selection, string[] selectionargs) { // todo auto-generated method stub return 0; }
05-05 23:34:30.855: i/activitythread(31903): pub com.drizzlyday.apps.episotron.providers: com.drizzlyday.apps.episotron.providers.serieprovider 05-05 23:34:31.035: d/serie(31903): new serie fragment 05-05 23:34:31.040: i/loadermanager(31903): starting... 05-05 23:34:31.040: i/loadermanager(31903): creating loader... 05-05 23:34:31.055: d/abslistview(31903): motionrecognitionmanager 05-05 23:34:31.060: d/abslistview(31903): motionrecognitionmanager 05-05 23:34:31.080: d/dalvikvm(31903): gc_concurrent freed 174k, 8% free 12340k/13383k, paused 2ms+2ms, total 16ms 05-05 23:34:31.090: d/provider(31903): content://com.drizzlyday.apps.episotron.providers/serieprovider/episodes 05-05 23:34:31.090: d/provider(31903): episodes 05-05 23:34:31.100: v/slidingmenu(31903): setting padding! 05-05 23:34:31.160: d/libegl(31903): loaded /system/lib/egl/libegl_mali.so 05-05 23:34:31.175: d/libegl(31903): loaded /system/lib/egl/libglesv1_cm_mali.so 05-05 23:34:31.175: d/libegl(31903): loaded /system/lib/egl/libglesv2_mali.so 05-05 23:34:31.180: d/(31903): device driver api match 05-05 23:34:31.180: d/(31903): device driver api version: 10 05-05 23:34:31.180: d/(31903): user space api version: 10 05-05 23:34:31.180: d/(31903): mali: revision=linux-r2p4-02rel0 build_date=tue oct 16 15:37:13 kst 2012 05-05 23:34:31.210: d/openglrenderer(31903): enabling debug mode 0 05-05 23:34:31.215: v/customviewbehind(31903): behind invisible 05-05 23:34:31.260: d/provider(31903): cursor: android.database.sqlite.sqlitecursor@41b0df88 - columncount: 2 - rowcount: 1
i found problem. had add following line refresh drawable state of list:
this.getlistview().refreshdrawablestate();
Comments
Post a Comment