2011-07-20 10 views
7

の文字列をSharedPreferencesに格納することが可能かどうかを知りたいですか?私のアプリケーションでは、が格納されるの名前のセットが欲しいです。私はこれがDBを使用して行うことができることを知っている、私はただが可能であるかどうかを知りたいの名前をSharedPreferencesの文字列の配列として保存することができます。SharedPreferencesの文字列の配列

答えて

6

APIレベル11以上でSharedPreferencesを使用してStringのセットを格納できます。 getStringSet()putStringSet() idd

11より前のAPIレベルでは、何らかのハックを使用することができます。あなたは、キー「のStringArray」の下に文字列配列を格納する必要がある場合たとえば、あなたがputStringとキーを使用してアレイからの各文字列を保存することができ、「stringArray.1」、その上「stringArray.2」、。

+0

おかげで本当に役立つだろう....私は、これは間違いなく役立つだろうと感じ私はしかし、一般的に文字列を格納するこの良い方法はありますか?私はDBではなく共有の設定で文字列のセットを格納することを意味しますか? – Pravy

+1

文字列の配列が小さい場合は、単に 'SharedPrefernece'を使う方が簡単でしょう。しかし、文字列の大規模な配列が必要な場合は、私はDBが行く唯一の方法だと思います。実装と使用が難しくなりますが、より効率的です。 – inazaruk

+0

あなたの提案に感謝し、私はSET、データ構造、重複した要素を含むことができないことがわかりました。同じ文字列を複数回含むことはできませんか? @inazaruk – Pravy

1

配列として格納することはできませんが、連結することができます。読み込み時には、StringTokenizerを使用して分割することができます。これがあなたに役立つなら、私はいくつかのコードを助けることができます。

+0

おかげだろう..確か屋。これに関するいくつかのリンクやコードが – Pravy

0

共有設定では、キー値のペアのようにデータを保存できます。 私は通常やっていることは、キーのリストを取得し、それを反復処理、その後のすべてのデータを挿入するユニークなものとしてキーを設定し、それは数字1,2,3など

使用

SharedPreference属=コンテキストになることです。 getSharedPreferences( "myPrefs"、MODE_WORLD_READABLE); マップpresetDataMap = sp.getAll();

次いでpresetDataMapをループ、

イテレータITT = presetDataMap.keySet()反復子()。

これが役に立ちます。