2012-02-10 3 views
5

그래서 안드로이드에 HashMap을 저장하려고합니다. internal storage을 사용하는 것이 더 좋다고 생각하지만, 을 저장하는 방법HashMap에 저장하고 나중에 읽으십시오.. 누군가 제대로 할 수있는 방법을 설명해 주시겠습니까?안드로이드에 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

관련 문제