これは重要です。タブ付きアクティビティ(非推奨)を使用すると、すべてが私のコードで正常に機能します。この問題は、フラグメントを使用した場合にのみ発生します。3つのタブがあり、各タブはフラグメントです。レイアウトはすべてのタブで同じです。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<GridView android:id="@+id/newsView"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:verticalSpacing="2dp"
android:numColumns="auto_fit"
android:gravity="center"
android:columnWidth="100dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:layout_weight="1"/>
</LinearLayout>
違いは、カーソルローダーのクエリです。実際、各フラグメントはLaderCallbacksを実装しています。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if(container == null)
return null;
View v = inflater.inflate(R.layout.activity_grid, container,false);
dataSource = new MyCursorAdapter(getActivity().getApplicationContext(), null);
GridView grid = (GridView)v.findViewById(R.id.newsView);
grid.setAdapter(dataSource);
getActivity().getSupportLoaderManager().initLoader(LOADER_ID, null, this);
return v;
残りのコード(カーソルクエリなど)については、フラグメントに切り替える前に機能したので、100%確信しています。何か案は?