2012-01-03 21 views
1

私は整数値を持つ配列を持っています。それは時間とともに成長するでしょう。おおよそ50個までの値を持ちます。 私は配列を永続的に保存したいので、sharedpreferencesに格納することを考えました。 複雑な型は格納できませんが、配列をシリアル化してsharedpreferencesに格納することについても聞きました。 誰かが私にヒントやサンプルコードを伝える方法を教えてもらえますか?sharedpreferencesに配列を格納

+0

また、この[回答]を参照することができます(http://stackoverflow.com/questions/7175880/how-can-i-store-an-integer-array-in-sharedpreferences) –

答えて

4

ない非常に効率的な方法が、仕事を得るだろう:

SharedPreferences prefs = ...; 
final int count = 50; 
final String KEY_COUNT = "COUNT"; 
final String KEY_VAL_PREFIX = "VAL_"; 
int values[] = new int[count]; 

/* 
* ... put some stuff in values[] ... 
*/ 

final Editor sped = prefs.edit(); 
sped.putInt(KEY_COUNT, count); 
for (int i = 0; i < count; i++) 
{ 
    sped.putInt(KEY_VAL_PREFIX + i, values[i]); 
} 
sped.commit(); 

をその後、あなたはvalues2[i] = getInt(KEY_VAL_PREFIX + i, 0)通話であなたの空の配列を埋め、その後、環境設定からKEY_COUNT値をつかむことで、これらの値を取得することができます。

+0

:あなたはできると思いますか?これで助けてくれますか?http://stackoverflow.com/questions/9209673/using-preferences-my-listview-is-empty-cant-store-data – George

+0

私はちょっと見ました。 – Josh

+0

@Joshゲッターとセッターのコード全体を含めることはできますか? – HeartlessArchangel

1

あなたはObjectSerializerを使用してそれを行うことができます。ここでは、行う方法についての議論があります。 Store Shared preferences

1

私はコンマで区切られた値の文字列にあなたの配列を変換します。文字列を単一のキーと値のペアとして格納します。

次に、配列を抽出する場合は、split関数を使用して、文字列をカンマ区切りに基づいて配列要素に分割します。