CursorLoader を使用して Fragment で SQLite からデータを取得しています。このための initLoader() は onActivityCreated() で実行されます...
public class MyFragment extends Fragment implements LoaderCallbacks<Cursor>
{
MenuItem menuItemOne;
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
getLoaderManager().initLoader(0, null, this);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
inflater.inflate(R.menu.myMenu, menu);
menuItemOne = menu.findItem(R.id.menuItemOne);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor)
{
menuItemOne.doSomething();
}
}
上記のコードは、読みやすくするために単純化されています。ここに私の問題があります...
- Nexus Sでは問題ありません。
- Nexus 7では、onLoadFinishedで null ポインターが発生します。ここでは menuItemOne は null です。
Nexus S は Android 4.1.2 を使用しており、Nexus 7 は Android 4.2.2 を使用しています。
- 他の場所で initLoader() を実行する必要がありますか?
- Android のバージョンにバグや違いがあると思いますか?