2016-11-29 69 views
0

我使用內容觀察器。在onQuery中,我使用setNotificationUri來註冊uri。 在bulkInsert/insert方法中,我添加了notifyChange方法調用。 bulkInsert或insert後,CursorLoader.onLoadFinished方法被調用。在onLoaderFinished方法中:adapter.swapCursor也被調用。 但CursorAdapter newView/getView沒有被調用。 我重寫了getCount方法以及CursorAdapter。我能夠得到遊標數。 請幫忙。 在此先感謝。CursorAdapter newView/BindView沒有被調用

MainActivity onCreate contains: 
    mGridView = (GridView) findViewById(R.id.grid_view); 
      mMovieCursorAdapter = new MoviesCursorAdapter(this, null, 0); 
      mGridView.setAdapter(mMovieCursorAdapter); 


getSupportLoaderManager().initLoader(MOVIE_LOADER, null, this); 


@Override 
    public Loader<Cursor> onCreateLoader(int id, Bundle args) { 
     Uri uri = MovieContract.MovieEntry.CONTENT_URI; 

     return new CursorLoader(this, uri, null, null, null, null); 
    } 

    @Override 
    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { 

mMovieCursorAdapter.swapCursor(cursor); 

    } 

    @Override 
    public void onLoaderReset(Loader<Cursor> loader) { 
     mMovieCursorAdapter.swapCursor(null); 
    } 



In ContentProvider query() method: 
    retCursor.setNotificationUri(getContext().getContentResolver(), uri); 

**In bulkInsert() method:** 
getContext().getContentResolver().notifyChange(uri, null); 
+0

你能分享更多的代碼和細節 –

回答

0

它可能晚了,但我有同樣的問題。我的代碼按照預期運行了API 19,但bindView未在API 24中調用。我嘗試了所有關於此問題的答案,但沒有任何幫助。我一次又一次地控制了我的代碼,沒有發現任何錯誤。

解決方案:我完全創建了一個新項目。並將所有代碼複製到新項目中,完全相同。之後,在新項目中,所有事情都按預期工作。我認爲它與android studio有關。

我希望這有助於...