这就是我在SharedPreferences中保存值的方法:
private void GuardarConfiguracionEnXML() {
SharedPreferences prefs =getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("ConfirmarPromocion", VarGlobales.ConfirmarPromocion);
editor.putBoolean("NoPermitirCero", VarGlobales.NoPermitirCero);
editor.putBoolean("ProponerCantidad", VarGlobales.ProponerCantidad);
editor.putBoolean("ArticuloCodNum", VarGlobales.ArticuloCodNum);
editor.putBoolean("GuardarRutas", VarGlobales.GuardarRutas);
editor.putBoolean("IncluyeFabricante", VarGlobales.IncluyeFabricante);
editor.putBoolean("CompararComienzo", VarGlobales.CompararComienzo);
editor.putString("CadenaBusquedaArticulos", VarGlobales.CadenaBusquedaArticulos);
editor.putString("SerieConfiguracion", VarGlobales.SerieConfiguracion);
editor.putBoolean("MostrarPoblacion", VarGlobales.MostrarPoblacion);
editor.putBoolean("RecogidaEnvases", VarGlobales.Recogidaenvases);
editor.putBoolean("ConvertirACajas", VarGlobales.ConvertirACajas);
editor.putBoolean("RepartoFinSemana", VarGlobales.RepartoFinSemana);
if(VarGlobales.ModoBusArticulos == BuscarPorArticulo.CODIGO)
editor.putInt("BusquedaDefectoArticulos", 3);
else if(VarGlobales.ModoBusArticulos == BuscarPorArticulo.DESCRIPCIONC)
editor.putInt("BusquedaDefectoArticulos", 1);
else
editor.putInt("BusquedaDefectoArticulos", 2);
editor.putInt("DiasDiurno", VarGlobales.DiasDiurno);
editor.putInt("DiasNocturno", VarGlobales.DiasNocturno);
//editor.putBoolean("VentaSoloUnidades", VarGlobales.VentaSoloUnidades);
editor.commit();
Map<String, ?> testshared = prefs.getAll();
}
testshared
包含所有值,但是当我启动apk时,我得到0值:
SharedPreferences prefs = getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
Map<String, ?> testshared2 = prefs.getAll();
testshared2
是空的......为什么?
编辑:是一个Eclipse错误,我已经重新启动了我的计算机,现在它正常运行......感谢所有人。
答案 0 :(得分:0)
试试这个
更改
SharedPreferences prefs =getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
到此
SharedPreferences prefs =getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
Editor editor = prefs.edit();
答案 1 :(得分:0)
您的“put / commit”代码对我来说是正确的。
然而,getAll存在一些陷阱:
How to iterate through all keys of shared preferences?
我建议你尝试检索一个单独的值(例如使用getBoolean或getString)来确定这是否是问题。
答案 2 :(得分:0)
我根据自己的活动使用sharedPreferences。如果你没有活动或片段类,你可以使用“getApplicationContext()”,你可以在片段类中使用“getActivity()”或在活动类中使用“this”。
放置数据:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
Editor prefsEditor = prefs.edit();
refsEditor.putString(Key1, Value1);
refsEditor.putString(Key2, Value2);
prefsEditor.commit();
检索数据:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
String str = prefs.getString(Key1, "defValue");