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 {
?????
}
내가 처음 시도한 것이 었습니다. 그러나 콜백은 조각으로 구현되고'getLoaderManager(). restartLoader (0, null, this);'와 같이 호출되지만 내부 클래스의 콜백을 어떻게 호출해야합니까? –
나는 어떻게 됐어. 나는 a를 AsyncTask를 생성자에서 콜백 요청 : {... \t \t \t \t ... 코드 \t}'공공 MyDownloader (컨텍스트 컨텍스트, LoaderCallbacks 콜백, OnMyDownloaded 리스너)' 및 전화'getLoaderManager() .restartLoader (0, null, callback);'리스너로부터 (그러나 나는 onPostExecute에서도 작동 할 것이라고 생각합니다). –
예, 당신 말이 맞습니다. 신의 운! – Shamm