2014-10-18 1 views
-2

나는이 같은 값으로 sharedpreference var에 있습니다이 방법으로 sharedpreference 변수를 업데이트하려면 어떻게해야합니까?

key0,value 
key1,value 
key3,value 
key5,value 
key6,value 
key7,value 
key10,value 

내가하고 싶은 것은 항목을 다음과 같은 순서대로 분류와 새로운 sharedpreference 값을 얻을 수 있습니다 :

key0,value 
key1,value 
key2,value 
key3,value 
key4,value 
key5,value 
key6,value 

을 나는이 작업을 수행하려면 어떻게 ?

고맙습니다.

+0

시도해 보셨습니까? 여기에 넣으십시오. – Rustam

+0

아니요, 아무 것도 시도하지 않았습니다. 그 때문에 나는이 질문을했다. – Levimatt

답변

0

이 같은 해결 방법을 사용할 수 있습니다

SharedPreferences shp = context.getSharedPreferences("yourSHP", MODE_PRIVATE); 

//begin & end are to integers. For your case: 0 and 6 to get form key0 to key6 
for(int i=begin;i<=end;i++){ 
String value = shp.getString("key"+i, "defaultValue"); 
//.....Here you can do whatever you want with your values 
} 

을 나는이 도움이 될 희망!

+0

그러나이 코드는 루프 내에서 sharedpreference를 업데이트하지 않습니다. 위에 게시 한 두 번째 옵션으로 키 이름을 업데이트하려고합니다. – Levimatt

0
SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit(); 

for(Entry<String, String> entry : testMap.entrySet()) 
    editor.putString(entry.getKey(), entry.getValue()); 

editor.commit(); 
+0

좀 더 유용한 답을하기 위해 설명문을 추가하십시오 - 감사합니다. –

0

다음 해결 방법을 시도했습니다. 다른 빠른 방법이 있는지 모르겠습니다.

  SharedPreferences shpTH = mContext.getSharedPreferences("PrefsTH", ListadoImagenesSubidasMain.MODE_PRIVATE); 
      Map<String,?> keysTH = shpTH.getAll(); 

      List<String> imgTH = new ArrayList<String>(); 
      for(Map.Entry<String,?> entry : keysTH.entrySet()){ 
        imgTH.add(entry.getValue().toString());   
      } 

      SharedPreferences newPrefsTH = mContext.getSharedPreferences("PrefsTH", ListadoImagenesSubidasMain.MODE_PRIVATE); 
      newPrefsTH.edit().clear().commit(); 

      int contTH = 0; 
      for(String item : imgTH){ 
       SharedPreferences.Editor editorTH = newPrefsTH.edit(); 
       editorTH.putString("urlTH" + contTH, item); 
       editorTH.commit(); 
       contTH++; 
      } 

먼저 모든 값을 목록에 복사합니다. 그런 다음 sharedpreferences var를 비 웁니다. 마지막으로 빈 sharedpreferences에 채워진 목록의 모든 값을 저장합니다.

관련 문제