像这样试试。
import android.content.Context;
import android.content.SharedPreferences;
/**
* @author VIVEK
* This class deals in with setting Cache value for complete app.
*/
public class SharedPrefUtil{
/*Set Boolean value in shared preferences */
public static void setSharedPref(Context context, String key, boolean value) {
// save token in preference
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(key, value);
editor.commit();
}
/*get Boolean value in shared preferences */
public static boolean getSharedPref(Context context, String key, boolean defaultVal) {
boolean prefToken = defaultVal;
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
prefToken = sharedPreferences.getBoolean(key, false);
return prefToken;
}
/*Set String value in shared preferences */
public static void setSharedPref(Context context, String key, String value) {
// save token in preference
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
/*get String value in shared preferences */
public static String getSharedPref(Context context, String key, String defaultVal) {
String value = defaultVal;
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
value = sharedPreferences.getString(key, defaultVal);
return value;
}
public static void cleanSharedPrefFile(Context context) {
// save token in preference
SharedPreferences sharedPreferences = context.getSharedPreferences("usb", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.commit();
}
} // End of main class over here ...
现在你想在 Shared Pref 中设置一些值,然后像这样设置
SharedPrefUtil.setSharedPref(MainActivity.this, "test", storeBuff);
现在,当您需要从共享首选项中获取价值时,请像这样调用
SharedPrefUtil.getSharedPref(MainActivity.this, "test", "default value");
代替editor.commit(),使用editor.apply()
基础知识:
getDefaultSharedPreferences() 使用默认的首选项文件名。此默认设置是针对每个应用程序设置的,因此同一应用程序上下文中的所有活动都可以轻松访问它,如下例所示:
SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this);
if (spref.contains("email")) {
String sEmailAddr = spref.getString("email", "");
}
首选项通常存储在/data/data/com.package.name/shared_prefs/com.package.name_preferences.xml
替代方法 - getSharedPreferences(name,mode) 需要指明特定的首选项(文件)名称和操作模式(例如私有、world_readable 等),以便更好地访问您的 SharedPref 文件。