Я пытаюсь конвертировать приложение для Android, чтобы использовать LoaderManager и CursorLoader.По сути, у меня есть база данных SQLite, содержащая столбец ADDRESS и столбец DISTANCE, и я хочу загрузить значения столбца в мои строки ListView.
Теперь я провел много исследований, и все указывает на этоучебник: http://mobile.tutsplus.com/tutorials/android/android-sdk_content-providers/
Это хороший учебник, но есть пара вещей, которые я до сих пор не понимаю.Главным образом, как мне сконструировать URI контента, который передается в 'new CursorLoader ()'?Я не использую какие-либо внешние данные, такие как контакты устройства и т. Д.
Пожалуйста, смотрите мой код ниже.Я не понимаю, как создать значение для BASE_URI:
public class FavoritesFragment extends ListFragment implements
LoaderManager.LoaderCallbacks<Cursor> {
SimpleCursorAdapter mAdapter;
static final String[] FAVORITES_SUMMARY_PROJECTION = new String[] {
MyApplication.COLUMN_ID, MyApplication.COLUMN_ADDRESS,
MyApplication.COLUMN_DISTANCE, };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAdapter = new SimpleCursorAdapter(getActivity(),
R.layout.locations_list_row, null, new String[] {
MyApplication.COLUMN_ADDRESS,
MyApplication.COLUMN_DISTANCE }, new int[] {
R.id.address2, R.id.distance }, 0);
setListAdapter(mAdapter);
getLoaderManager().initLoader(0, null, this);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// Insert desired behavior here.
}
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(getActivity(), ***BASE_URI***,
FAVORITES_SUMMARY_PROJECTION, null, null, null);
}
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mAdapter.swapCursor(data);
}
public void onLoaderReset(Loader<Cursor> loader) {
mAdapter.swapCursor(null);
}
}