2016-11-29 13 views
0

콘텐츠 관찰자를 사용하고 있습니다. onQuery에서 setNotificationUri를 사용하여 uri를 등록했습니다. bulkInsert/insert 메서드에서 notifyChange 메서드 호출을 추가했습니다. bulkInsert 또는 insert 후 CursorLoader.onLoadFinished 메서드가 호출됩니다. onLoaderFinished 메소드 내부에서 : adapter.swapCursor도 호출 중입니다. 그러나 CursorAdapter newView/getView가 호출되지 않습니다. CursorAdapter 내에서 getCount 메서드도 재정의합니다. 나는 커서 카운트를 얻을 수있다. 도와주세요. 미리 감사드립니다. 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로 실행 중이지만 API 24에서 bindView isnt가 호출되었습니다.이 문제에 대한 모든 대답을 시도했지만 아무런 도움이되지 않았습니다. 나는 내 코드를 몇 번이고 다시 제어했는데 실수를 찾지 못했습니다.

솔루션 : 완전히 새로운 프로젝트를 만들었습니다. 그리고 모든 코드를 그대로 새 프로젝트에 복사했습니다. 그 후 새로운 프로젝트에서 모든 것이 예상대로 작동했습니다. 나는 그것과 어떻게 든 안드로이드 스튜디오와 관련 있다고 생각합니다.

도움이 되었기를 바랍니다 ...