2014-03-25 5 views
0

CursorAdapter에 데이터 변경 사실을 알리는 데 문제가 있습니다. AsyncTask를 가진asynctask에서 Update CursorAdapter

public class MyListFragment extends ListFragment implements LoaderCallbacks<Cursor> { 

    public Loader<Cursor> onCreateLoader(int id, Bundle args) { 
      return new MyListCursorLoader(getActivity()); 
     } 


     public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) { 
      MyCursorAdapter adapter = new MyCursorAdapter(getActivity(),(MyCursor)cursor); 
      setListAdapter(adapter); 
     } 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getLoaderManager().initLoader(0, null, this); 
    } 

    private static class MyCursorAdapter extends CursorAdapter { 

    ... some code ... 

    } 

    private static class MyListCursorLoader extends SQLiteCursorLoader { 

    ... code ... 

    } 

SQLite 데이터베이스 업데이트 (공용 인터페이스를 가지고 있으며, ListFragment가 리스너를 구현) 내가 onPostExecute와 ListAdapter 다시 시도,하지만 난 정말 어떻게 알 수 없습니다.

AsyncTask를 코드는

public class MyDownloader extends AsyncTask<Void, Void, Void> { 

    public interface OnMyDownloaded { 
     void onMyDownloaded(); 
    } 


    public JSONDownloader(Context context, OnMyDownloaded listener) { 

      ...code... 

    } 

    protected Void doInBackground(Void... params) { 
      ...code... 
    } 


    protected void onPostExecute(Void result) { 
     listener.onMyDownloaded(); 
    } 

하세요, 제가 MyListFragment 내부 클래스에서 무엇을해야하는지 이해하는 데 도움이

private class OnEventDownloaded implements OnJSONDownloaded { 
    ????? 
} 

답변

0

당신은 getLoaderManager().restartLoader(int id, Bundle args, LoaderCallbacks<D> callback); 그것은 onCreateLoader를 호출 호출 할 수 있습니다, 그래서 로더가 다시 생성됩니다. 내가 너를 올바르게 이해한다면.

+0

내가 처음 시도한 것이 었습니다. 그러나 콜백은 조각으로 구현되고'getLoaderManager(). restartLoader (0, null, this);'와 같이 호출되지만 내부 클래스의 콜백을 어떻게 호출해야합니까? –

+0

나는 어떻게 됐어. 나는 a를 AsyncTask를 생성자에서 콜백 요청 : {... \t \t \t \t ... 코드 \t}'공공 MyDownloader (컨텍스트 컨텍스트, LoaderCallbacks 콜백, OnMyDownloaded 리스너)' 및 전화'getLoaderManager() .restartLoader (0, null, callback);'리스너로부터 (그러나 나는 onPostExecute에서도 작동 할 것이라고 생각합니다). –

+0

예, 당신 말이 맞습니다. 신의 운! – Shamm