SharedPreferencesを使用して、次のようにArrayListを保存およびロードしています:(保存)
SharedPreferences loadGlobalVariables = getSharedPreferences(APP_NAME, 0);
Categories = new ArrayList<String>(loadGlobalVariables.getStringSet("Categories", new HashSet<String>()));
(ロード)そしてこれ(両方とも正常に動作し、保存とロードの両方が正しく行われます)
SharedPreferences saveGlobalVariables = getSharedPreferences(APP_NAME, 0);
SharedPreferences.Editor editor = saveGlobalVariables.edit();
editor.putStringSet("Categories", new HashSet<String>(Categories));
editor.commit();
ただし、取得されたArrayListの要素の順序は以前とは異なります。このArrayListをCategory.toArray(temArray)によってリストとして(このリストは開くたびに更新されます)ダイアログに入れ、リストがアルファベット順ではなくなったため、これを知っています。
以前は、このArrayListはその中のString要素をアルファベット順にソートしていました。SharedPreferencesから取得し直すと、アルファベット順にソートされなくなりました。
よろしくお願いします。