Androidアプリの設定保存と取得方法

Androidアプリの設定方法の保存についてかんたんに説明しています。

SharedPreferences

設定を保存するときは「SharedPreferences」クラスを使用します。
わりとややこしいので、何度使っても慣れませんね。
毎回調べるのが大変なので、記録を残しておきます。

    /**
     * お気に入りデータの保存
     */
    private void saveFavoriteList() {
        StringBuilder strData = new StringBuilder();
        for (int i = 0; i < favoriteList.size(); i++) {
            if (i > 0) strData.append("<>");
            strData.append(favoriteList.get(i).code + "\t" + favoriteList.get(i).name);
        }

        Context ctx = getApplicationContext();
        SharedPreferences prefs = ctx.getSharedPreferences("DataSave", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("favorite", strData.toString());
        editor.commit();
    }

    /**
     * お気に入りデータの取得
     */
    private void loadFavoriteList() {
        favoriteList.clear();

        SharedPreferences data = getSharedPreferences("DataSave", Context.MODE_PRIVATE);
        String strData = data.getString("favorite", "");

        String[] array = strData.split("<>");
        for (int i = 0; i < array.length; i++) {
            if (array[i].isEmpty() == false) {
                FavoriteData fd = new FavoriteData();
                fd.code = array[i].split("\t")[0];
                fd.name = array[i].split("\t")[1];
                favoriteList.add(fd);
            }
        }

        invalidateOptionsMenu();
    }

なんとなく動きを理解できるのではないでしょうか。

データを登録するときはEditorインスタンスを作成します。
最後にcommitするのを忘れないでください。

なんとなくデータベースっぽい仕組みですね。

システム開発

Posted by @erestage