Articles of sharedpreferences

SyncAdapter中提交的SharedPreference未在Activity中更新?

成功同步后,我正在更改并在SyncAdapter中提交SharedPreference,但是当我在Activity中访问首选项时,我没有看到更新的值(相反,我看到的是旧值)。 我究竟做错了什么? 不同的背景? 我更新偏好的SyncAdapter: class SyncAdapter extends AbstractThreadedSyncAdapter { private int PARTICIPANT_ID; private final Context mContext; private final ContentResolver mContentResolver; public SyncAdapter(Context context, boolean autoInitialize) { super(context, autoInitialize); mContext = context; mContentResolver = context.getContentResolver(); } public SyncAdapter(Context context, boolean autoInitialize, boolean allowParallelSyncs) { super(context, autoInitialize, allowParallelSyncs); mContext = context; mContentResolver = context.getContentResolver(); } @Override public […]

如何将Hashmap存储到android,以便在使用共享首选项重新启动应用程序时重用它?

我想将hashmap存储到我的android应用程序中,当重新启动时,它会显示最后保存的hashmap值。 HashMap HtKpi=new HashMap(); 是我的hashmap,44个值动态存储在其中。 这工作正常! 现在,我想将其存储以备将来使用(应用程序重启或重用)。

如何将SharedPreferences备份到SD卡?

我在很多地方看到将SharedPreferences文件复制到SD卡是一个问题,因为每个制造商都将它放在其他地方。 无论文件位于何处,我都想在SD卡上备份。 有没有办法做到这一点?

最安全的方式使用SharedPreferences

我需要一个处理我的SharedPreferences的类,我想出了3种方法,但经过一些研究后,似乎大多数都被认为是“反模式”。 输入1 public final class MyPrefs { private MyPrefs(){ throw new AssertionError(); } public static void setFavoriteColor(Context context, String value){ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); prefs.edit().putString(“color_key”, value).apply(); } public static void setFavoriteAnimal(Context context, String value){ // … } // … } /* Usage */ MyPrefs.setFavoriteColor(this, “yellow”); // Reason why it might be considered “Bad” // Class […]

不推荐使用addPreferencesFromResource的替代方法

我在我的应用上创建了Preference活动,以允许用户启动/停止背景启animation面音乐,如下所示: public class Prefs extends PreferenceActivity{ @SuppressWarnings(“deprecation”) @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); // TODO Auto-generated method stub super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.prefs); } } 在xml文件夹中创建prefs.xml: 这个代码用于启动活动: public class Splash extends Activity{ MediaPlayer ourSong; @Override protected void onCreate(Bundle Drandroid) { this.requestWindowFeature(Window.FEATURE_NO_TITLE); // TODO Auto-generated method stub super.onCreate(Drandroid); setContentView(R.layout.splash); ourSong = MediaPlayer.create(Splash.this, R.raw.splashsound); SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); boolean […]

如何在Android中使用SharedPreferences存储布尔值?

我想保存布尔值,然后在if-else块中进行比较。 我目前的逻辑是: boolean locked = true; if (locked == true) { /* SETBoolean TO FALSE */ } else { Intent newActivity4 = new Intent(parent.getContext(), Tag1.class); startActivity(newActivity4); } 如何保存已设置为false的布尔variables?

奇怪的exception:使用getBoolean时无法将String强制转换为Boolean

我收到一个非常奇怪的错误。 我有2个活动。 两者都是通过sp = getPreferences(MODE_PRIVATE);使用MODE_PRIVATE (如果重要)获取SharedPreferences sp = getPreferences(MODE_PRIVATE); 在每个活动的onCreate()我正在调用sp.getBoolean(IntroActivity.SHOW_INTRO, true) 在IntroActivity这很好用。 但是当我在主要活动中尝试时,我得到了这个 10-12 04:55:23.208: E/AndroidRuntime(11668): FATAL EXCEPTION: main 10-12 04:55:23.208: E/AndroidRuntime(11668): java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean 10-12 04:55:23.208: E/AndroidRuntime(11668): at android.app.SharedPreferencesImpl.getBoolean(SharedPreferencesImpl.java:242) 10-12 04:55:23.208: E/AndroidRuntime(11668): at com.lablabla.parkme.ParkMeActivity$2.onClick(ParkMeActivity.java:194) 10-12 04:55:23.208: E/AndroidRuntime(11668): at android.view.View.performClick(View.java:4084) 10-12 04:55:23.208: E/AndroidRuntime(11668): at android.view.View$PerformClick.run(View.java:16966) 10-12 04:55:23.208: E/AndroidRuntime(11668): at android.os.Handler.handleCallback(Handler.java:615) 10-12 […]

使用SharedPreferences的自定义子类与PreferenceActivity或PreferenceFragment

我正在使用SharedPreferences的自定义子类来加密我在应用程序中保存的设置,类似于第二个响应中的操作: 在Android应用程序中存储用户设置的最合适方法是什么 我必须保存的偏好数量正在增加。 在我使用自定义视图更新这些首选项之前,这将变得很麻烦,我想使用PreferenceActivity或PreferenceFragment。 问题是,似乎没有办法让这些类中的任何一个使用我的子类访问我的数据,这意味着它从默认首选项文件中提取的数据将是乱码,因为它没有被解密。 我发现有些人创建了Preference的自定义实现来加密那里的数据,但是我不想这样做,因为数据已经在我的SharedPreferences子类中加密/解密了,我想保持它办法。 我也一直在查看PreferenceActivity和PreferenceManager的源代码,我不确定解决这个问题的最佳方法。 有没有其他人有幸做完这样的事情并对我可能从哪里开始有任何建议?

如何在MultiSelectListPreference中设置多个默认值?

我有这样的preference.xml 用我的两个数组: 1 2 3 4 5 foodbasics nofrills metro loblaws sobeys 我希望默认行为是所有选定的选项,但默认情况下当前没有选择任何选项。 难道我做错了什么?

如何使用Mockito模拟SharedPreferences

我刚刚阅读了Android中的单元仪表测试,我想知道如何在没有任何SharedPreferencesHelper类的情况下模拟SharedPreferences,就像这里一样 我的代码是: public class Auth { private static SharedPreferences loggedUserData = null; public static String getValidToken(Context context) { initLoggedUserPreferences(context); String token = loggedUserData.getString(Constants.USER_TOKEN,null); return token; } public static String getLoggedUser(Context context) { initLoggedUserPreferences(context); String user = loggedUserData.getString(Constants.LOGGED_USERNAME,null); return user; } public static void setUserCredentials(Context context, String username, String token) { initLoggedUserPreferences(context); loggedUserData.edit().putString(Constants.LOGGED_USERNAME, username).commit(); loggedUserData.edit().putString(Constants.USER_TOKEN,token).commit(); } […]