コンパイラ1.7のコンプライアンスレベルでターゲットAPI16と最小API11を使用しています。OnLoadFinished、OnCreateLoaderなどのLoaderCallbacksのメソッドで@Override表記を使用している場合、検査結果にスーパークラスメソッドをオーバーライドする必要があるという誤りがあります。
Eclipse SDK
バージョン:4.2.1ビルドID:M20120914-1800
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.birthdays"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="15" />
<application android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">
</application>
</manifest>
public class MainActivity extends ListActivity implements LoaderManager.LoaderCallbacks<Cursor>
{
private static final int ACTIVITY_CREATE = 0;
private static final int DELETE_ID = Menu.FIRST + 1;
private AppSqliteDataBase dataSource;
private Cursor cursor;
private SimpleCursorAdapter adapter;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// this.getListView().setDividerHeight(2);
dataSource = new AppSqliteDataBase(this);
dataSource.open();
cursor = dataSource.getCursor();
fillData();
registerForContextMenu(getListView());
}
private void fillData()
{
String[] from = new String[] { dataSource.getCredentialsColName() };
int[] to = new int[] { R.id.list_label };
adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, from, to, 0);
setListAdapter(adapter);
getLoaderManager().initLoader(0, null, this);
}
public Loader<Cursor> onCreateLoader(int id, Bundle args)
{
// String[] projection = { dataSource.getIdColName(), dataSource.getCredentialsColName() };
SQLiteCursorLoader cursorLoader = new SQLiteCursorLoader(this,
dataSource.dbHelper, "select _id, credentials from birthdays where 1", new String[]{});
return cursorLoader;
}
public void onLoaderReset(Loader<Cursor> loader)
{
adapter.swapCursor(null);
}
public void onLoadFinished(Loader<Cursor> loader, Cursor data)
{
adapter.swapCursor(data);
}
}