android – Loadmanager onLoadFinished没有调用

android – Loadmanager onLoadFinished没有调用,第1张

概述我正在尝试使用LoaderCallBacks从数据库加载数据.但是不会调用loadercallbacks中的onLoadFinished函数.因此,您可以在日志中看到返回的行数为1但列表中没有显示任何条目,也未调用onLoadFinished,如您所见. SerieFragment public class SerieFragment extends SherlockListFragm 我正在尝试使用LoaderCallBacks从数据库加载数据.但是不会调用loadercallbacks中的onLoadFinished函数.因此,您可以在日志中看到返回的行数为1但列表中没有显示任何条目,也未调用onLoadFinished,如您所见.

SerIEFragment

    public class SerIEFragment extends SherlockListFragment implements            LoaderCallbacks {        private SimpleCursorAdapter adapter;        @OverrIDe        public voID onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            String[] from = new String[] { DBContract.Episodes.name };            int[] to = new int[] { R.ID.name };            Log.i("LoaderManager","Starting...");            getLoaderManager().initLoader(0,null,this);            adapter = new SimpleCursorAdapter(getActivity(),R.layout.serIE_List_item,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);            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);        }

内容提供商

    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[] 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,selection,selectionArgs,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[] 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.SerIEProvIDer05-05 23:34:31.035: D/SerIE(31903): New SerIE fragment05-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): Get MotionRecognitionManager05-05 23:34:31.060: D/AbsListVIEw(31903): Get MotionRecognitionManager05-05 23:34:31.080: D/dalvikvm(31903): GC_CONCURRENT freed 174K,8% free 12340K/13383K,paused 2ms+2ms,total 16ms05-05 23:34:31.090: D/ProvIDer(31903): content://com.drizzlyday.apps.episotron.provIDers/serIEprovIDer/episodes05-05 23:34:31.090: D/ProvIDer(31903): Episodes05-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.so05-05 23:34:31.175: D/libEGL(31903): loaded /system/lib/egl/libGLESv1_CM_mali.so05-05 23:34:31.175: D/libEGL(31903): loaded /system/lib/egl/libGLESv2_mali.so05-05 23:34:31.180: D/(31903): Device driver API match05-05 23:34:31.180: D/(31903): Device driver API version: 1005-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 005-05 23:34:31.215: V/CustomVIEwBehind(31903): behind INVISIBLE05-05 23:34:31.260: D/ProvIDer(31903): Cursor: androID.database.sqlite.sqliteCursor@41b0df88 - Columncount: 2 - Rowcount: 1
解决方法 我发现了这个问题.必须添加以下行来@R_718_6419@的可绘制状态:

this.getListVIEw().refreshDrawableState();
总结

以上是内存溢出为你收集整理的android – Loadmanager onLoadFinished没有调用全部内容,希望文章能够帮你解决android – Loadmanager onLoadFinished没有调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1124862.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存