SQLiteの使用 その1

名前一覧をデータベースへ保存できるようにしていきます
CharacterListクラス : DBを操作する内部クラス DbHelperを追加します

	private class DbHelper extends SQLiteOpenHelper {
		private static final String DB_NAME = "CharacterList";
		private static final int DB_VERSION = 0;
		private static final String TABLE_NAME = "character";
		private static final String COLUMN_NAME_NAME = "name";
		private static final String CREATE_TABLE = "create table " + TABLE_NAME
				+ "  ( name text not null );";

		private DbHelper(Context context) {
			super(context, DB_NAME, null, DB_VERSION);
		}

		@Override
		public void onCreate(SQLiteDatabase db) {
			db.execSQL(CREATE_TABLE);
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int from, int to) {
		}

		private void insertName(String name) {
			SQLiteDatabase db = this.getWritableDatabase();
			ContentValues columns = new ContentValues();
			columns.put(COLUMN_NAME_NAME, name);
			db.insert(TABLE_NAME, null, columns);
		}

	}

さらに、DBへの保存を行うメソッド save()を追加します

	private DbHelper dbHelper;
...
	public void save(Application application) {
		if (dbHelper == null) {
			dbHelper = new DbHelper(application);
		}

		for (Character character : characterList) {
			dbHelper.insertName(character.getName());
		}
	}

ファイルやDBとの入出力を行うにはandroidに依存したクラスが必要なため、そのような処理はCharacterListクラスからは分離したほうがいいような気もしますが、それは(それも?)後回しということで。
明日はsave()を呼び出す部分と 保存したことを通知する部分を作る予定です