Androidアプリケーションを、LoaderManagerとCursorLoaderを使用するように変換しようとしています。基本的には、ADDRESS列とDISTANCE列を含むSQLiteデータベースがあり、列値をListView行にロードしたいとします。 http://mobile.tutsplus.com/tutorials/android/android-sdk_content-providers/Android LoaderManagerとCursorLoaderの混乱
それは素敵なチュートリアルだが、私はまだ理解していない、物事のカップルがあります:
今、私はこのチュートリアルに多くの研究、およびすべてのポイントを行っています。主に、 '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);
}
}
[** LoaderManager(パート2)**](http://www.androiddesignpatterns.com/2012/07/understanding-loadermanager.html)を理解することは、学ぶべき素晴らしい投稿です。 –