我有一个共享首选项var,其值如下:
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 :(得分: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
}
我希望这会有所帮助!!
答案 1 :(得分:0)
SharedPreferences.Editor editor = getSharedPreferences(PREFS_NAME, 0).edit();
for( Entry<String, String> entry : testMap.entrySet() )
editor.putString( entry.getKey(), entry.getValue() );
editor.commit();
答案 2 :(得分: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中。