java–SharedPreferences无法跨活动工作

java–SharedPreferences无法跨活动工作,第1张

概述我正在尝试在一个活动中保存一些过滤器/状态,然后在下一个活动中使用该数据.我正在使用SharedPreferences,但它没有像我预期的那样工作.publicclassFilterActivityextendsActivity{privatestaticfinalStringTAG=FilterActivity.class.getName();EditTextdi

我正在尝试在一个活动中保存一些过滤器/状态,然后在下一个活动中使用该数据.

我正在使用SharedPreferences,但它没有像我预期的那样工作.

public class Filteractivity extends Activity {  private static final String TAG = Filteractivity.class.getname();  EditText distanceEditor;  @OverrIDe  public voID onPause() {    super.onPause();    SharedPreferences preferences = getSharedPreferences(PreferenceKey.FILTER_PREFERENCES_name, MODE_WORLD_READABLE);    String distance = distanceEditor.getText().toString();    preferences.edit().putString(PreferenceKey.disTANCE, distance);    preferences.edit().commit();    Log.i(TAG, "Wrote max-distance=" + distance);    Log.i(TAG, "Preferences contains distance=" + preferences.getString(PreferenceKey.disTANCE, "FAIL"));  }  public static class PreferenceKey {    public static final String FILTER_PREFERENCES_name = "Filteractivity:" + "Filter_Preference_file";    public static final String disTANCE = "Filteractivity:" + "disTANCE";  }}

然后,应该使用此首选项的Activity:

public class MapActivity  extends MapActivity {  @OverrIDe  public voID onResume() {    super.onResume();    SharedPreferences preferences = getSharedPreferences(Filteractivity.PreferenceKey.FILTER_PREFERENCES_name, MODE_WORLD_READABLE);    String maxdistance = preferences.getString(Filteractivity.PreferenceKey.disTANCE, "FAIL");    Log.i(TAG, "Read max-distance=" + maxdistance);  }}

但我得到的输出是:

.Filteractivity( 4847): Wrote max-distance=99.9.Filteractivity( 4847): Preferences contains distance=FAIL.MapActivity( 4847): Read max-distance=FAIL

谁能告诉我这里我做错了什么?

我正在针对API Level-8进行开发.

解决方法:

在以下两行中,

preferences.edit().putString(PreferenceKey.disTANCE, distance);preferences.edit().commit();

正在返回两个不同的SharedPreferences.Editors.因此,价值没有得到承诺.相反,你必须使用:

SharedPreferences.Editor spe = preferences.edit();spe.putString(PreferenceKey.disTANCE, distance);spe.commit();
总结

以上是内存溢出为你收集整理的java – SharedPreferences无法跨活动工作全部内容,希望文章能够帮你解决java – SharedPreferences无法跨活动工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1112686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存