LoaderManagerとCursorLoaderを使用するようにAndroidアプリケーションを変換しようとしています。基本的に、ADDRESS列とDISTANCE列を含むSQLiteデータベースがあり、列の値をListView行にロードしたいと思います。
今、私は多くの調査を行いました、そしてすべてがこのチュートリアルを指します:http: //mobile.tutsplus.com/tutorials/android/android-sdk_content-providers/
これは素晴らしいチュートリアルですが、まだ理解していないことがいくつかあります。主に、「new CursorLoader()」に渡されるコンテンツURIを構築するにはどうすればよいですか?デバイスの連絡先などの外部データを使用していません。
以下の私のコードをご覧ください。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);
}
}