意味をなさないサンプル コードを見つけました。以下に示すコードでは、this.getActivity() メソッドが使用されています。CursorLoader() メソッドのパラメーターでは、最初のパラメーターはコンテキストであり、ここでコンテキストが必要な場所で this.getActivity() が使用されます。明らかにエラーであるのに、なぜこの例で使用されているのですか。
Android のドキュメントには、この例のフラグメント オブジェクトの場合、getActivity() はコンテキスト オブジェクトではなくアクティビティ オブジェクトを返すと記載されています。最初のパラメーターはコンテキストであるため、getActivity() を使用してコンテキストを返さないのに、どのようにコンテキストを返すことができますか?
アンドロイドのドキュメントから
getActivity()
戻り型: 最終アクティビティ
このフラグメントが現在関連付けられている Activity を返します。
http://developer.android.com/reference/android/app/Fragment.html
サンプルコード
public class YourFragment extends Fragment
implements LoaderCallbacks<Cursor> {
// more code......
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
CursorLoader loader = new CursorLoader(
this.getActivity(), // <--- context is needed here
SOME_CONTENT_URI,
projection,
selection,
selectionArgs,
sortOrder);
return loader;
}