2012-02-10 30 views
5

したがって、私はHashMapをAndroidに保存しようとしています。 internal storageを使用する方が良いと思いますが、私はを保存するにはHashMapに保存してから、後でとお読みください。誰かが適切にそれを行う方法を説明することはできますか?AndroidにHashMapを保存するには?

独自の名前と値を持つカウンタがあります。私は、いくつかのアクティビティが開始されたときにそれらをロードし、それらと一緒に作業し(変更、削除、新規追加)、そのデータを保存して次回使用するようにしたい。今は値を削除/追加するのが簡単なので、私はHashMapを使用します。

HashMap<String, Integer> counters; 
+0

のですか?またはアプリケーションが実行されるまで –

+0

正確な保管要件を説明してください。 – Raj

+0

詳細をどうぞ。 –

答えて

12

SharedPreferencesもハッシュマップとしてキーと値のペアのデータを格納し、なぜマップにハッシュマップやストアからのすべてのキーの値を取得していない、それのように:

SharedPreferences pref= getContext().getSharedPreferences("Your_Shared_Prefs"), 
                  Context.MODE_PRIVATE); 
SharedPreferences.Editor editor= pref.edit(); 

    for (String s : map.keySet()) { 
     editor.putString(s, map.get(s)); 
    } 

使用できる値をフェッチするには:

public abstract Map<String, ?> getAll() 

http://developer.android.com/reference/android/content/SharedPreferences.html#getAll%28%29

使用:

SharedPreferences pref= getContext().getSharedPreferences("Your_Shared_Prefs"), 
                  Context.MODE_PRIVATE); 
HashMap<String, String> map= HashMap<String, String> pref.getAll(); 
for (String s : map.keySet()) { 
     String value=map.get(s); 
     //Use Value 
    } 

コードはコンパイルされていないため、多少の誤差はありますが、動作するはずです。

+0

そのメソッドを使用して値を取得する例を表示できますか? – Roman

+0

ようこそ。 – jeet

+1

+1はまだ試していませんが、マップを保存するにはいい方法です。 :) –

4

この

HashMap<String, String> hashMap = new HashMap<String, String>(); 
hashMap.put("key", "value"); 
Intent intent = new Intent(this, MyOtherActivity.class); 
intent.putExtra("map", hashMap); 
startActivity(intent); 

を試してみて、もう一つの方法は、あなたが永続性など、いくつかのファイルに格納するHERE

関連する問題