1

私は 3 つArrayListのオブジェクトを持っています。それを Android アプリケーションに保存し、アプリケーションの実行中にそれらを取得したいと考えています。

また、私はそれを達成するための他のアプローチと同じ順序で要素を配置したいと考えてArrayListSharedPreferencesます。

を使って試しているところ、 を使っSharedPreferencesており、フェッチする際にHashSetの順番がArrayList異なります。

秩序を乱さずにこれを達成する方法を教えてください。

4

2 に答える 2

2

プロジェクトで既に gson を使用している場合は、その文字列リストを json オブジェクトに変換し、それを通常の文字列として sharedpreference に配置し、その文字列を設定から抽出するときに、それを ArrayList に戻すことができます。これは私にはとても簡単に思えます。

private List<String> searchHistoryList;
 Type listType = new TypeToken<ArrayList<String>>() { // object can be String here
            }.getType();
String previousHistory = sp.getString("KEY");
            searchHistoryList = new Gson().fromJson(previousHistory, listType);

私は自分のプロジェクトの 1 つでこれを正常に使用しましたが、オブジェクトがあっても正常に動作しているようです。必要に応じて null チェックを追加してください。

于 2015-12-30T10:10:03.323 に答える