1 ~ 15 個の文字列を含むことができる ArrayList があります。これらの文字列は、共有設定に保存する必要があります。これで、配列を反復処理して文字列を取得する方法がわかりました。わからないことは、文字列を共有設定ファイルに動的に追加するクリーンな方法はありますか? 15 個の文字列を作成し、if ステートメントを使用して共有設定を埋めるという遅い方法でこれを行うことができますが、より良い方法があるかどうかを知りたいです。
ありがとうございました。
で使用putStringSet
可能なメソッドを使用して、SharedPreferences.Editor
文字列配列を格納できます。例えば:
String[] array = new String[]{"this", "is", "a", "string", "array"};
SharedPreferences.Editor edit = sharedPrefs.edit();
edit.putStringSet("myKey", new HashSet<String>(Arrays.asList(array)));
edit.commit();
または、API が 11 未満の場合は、文字列配列を単一の文字列に変換して、通常の文字列と同じように保存できます。例えば:
edit.putString("myKey", TextUtils.join(",", array));
後で次を使用して、文字列から配列を再構築します。
array = TextUtils.split(sharedPrefs.getString("myKey", null), ",");
命名に関する場合は、次のようなものを使用できます。
public static final String mPrefix = "mArray";
SharedPreferences prefs;
prefs = this.getSharedPreferences("PREF", 0);
prefsEditor = appSharedPrefs.edit();
//mAL is your ArrayList
for(int i=0; i<mAl.size(); i++){
prefsEditor.putString(mPrefix + "-" + i, mAl.get(i));
}
prefsEditor.commit();
主に共有設定データを編集するには、そこから Editor オブジェクトを取得する必要があります。これにより、データを自由に編集してデータを入れることができます。
SharedPrefernces preferences = mContext.getSharedPreferences(MODE_PRIVATE);
Editor prefEditor = preferences.edit();
prefEditor.putString("this is a key object","this is value of the key");
たとえば、さまざまな種類のオブジェクトを内部に配置することもできます: boolean 、 int 、 float 、 double など.... Android 開発者の Web サイトでエディター クラスを検索するだけです...
sharedPrefrences からデータを読み取るには、さらに簡単です
SharedPrefrences pref = mContext.getSharedPreferences(MODE_PRIVATE);
pref.getString("the key of the value");