Android 不带值的SharedReference
这就是我在SharedReferences中保存值的方式:Android 不带值的SharedReference,android,xml,sharedpreferences,Android,Xml,Sharedpreferences,这就是我在SharedReferences中保存值的方式: private void GuardarConfiguracionEnXML() { SharedPreferences prefs =getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean
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();
}
testshared2
为空。。。为什么?
编辑:是一个Eclipse错误,我重新启动了我的计算机,现在它可以工作了。。。谢谢大家。试试这个
改变
SharedPreferences prefs =getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
对此
SharedPreferences prefs =getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
Editor editor = prefs.edit();
您的“put/commit”代码在我看来是正确的
但是,getAll存在一些缺陷:
我建议您尝试检索单个值(例如使用getBoolean或getString)以确定这是否是问题所在。我根据我的活动使用SharedReferences。如果您不在活动或片段类中,则可以使用“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");
在onPause中是否调用GuardConfiguracionenXML?GuardarConfiguracionEnXML是在OnClickListener中调用的。“prefs无法解析为类型”,它不起作用。对此表示抱歉。您所拥有的实际上与我的代码一起工作。你能提供更多的代码来帮助上下文吗?我在调试时使用了getAll,我只是用它来知道哪些值包含我的SharedReferences文件。是一个Eclipse错误,我重新启动了我的计算机,现在它可以工作了……我的观点是getAll看起来很可疑,我的建议是使用getBoolean或getString。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
String str = prefs.getString(Key1, "defValue");