0

独自のローダーを実装し、フラグメントで使用しようとしています。

LOG メッセージで追跡したので、ContentProvider コードが機能していることはわかっています。エラーは Fragment コードにあるはずです。

私よりも経験豊富な誰かが、故意の間違いを見つけてください。

 public class StorePickerFragment extends ListFragment implements
 LoaderManager.LoaderCallbacks<Cursor> {


 private SimpleCursorAdapter adapter;

 /** Called when the Fragment is first created. */
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {
fillData();
 // Inflate the layout for this fragment


 return inflater.inflate(R.layout.store_list, container, false);
 }


 private void fillData() {

 // Fields from the database (projection)
 // Must include the _id column for the adapter to work
 String[] from = new String[] {StoreTable.COLUMN_ID, StoreTable.COLUMN_NAME };
 // Fields on the UI to which we map
 int[] to = new int[] { R.id.label };


 getLoaderManager().initLoader(0, null, this);
 adapter = new SimpleCursorAdapter(getActivity(), R.layout.store_row, null, from,
 to, 0);

        setListAdapter(adapter);
 }


 // Creates a new loader after the initLoader () call
 @Override
 public Loader<Cursor> onCreateLoader(int id, Bundle args) {
 String[] projection = { StoreTable.COLUMN_ID, StoreTable.COLUMN_NAME };
 CursorLoader cursorLoader = new CursorLoader(getActivity(),
    MyContentProvider.STORE_URI, projection,null,null, StoreTable.COLUMN_NAME);
 return cursorLoader;
 }

 @Override
 public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
 adapter.swapCursor(data);
 }

 @Override
 public void onLoaderReset(Loader<Cursor> loader) {
 // data is not available anymore, delete reference
 adapter.swapCursor(null);
 }

 }    
4

0 に答える 0