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()を呼び出す部分と 保存したことを通知する部分を作る予定です