在片段中获取 SharedPreferences 值?
get SharedPrefrences values in fragment?
如何获取 SharedPrefrences 值,例如,在片段中获取登录状态以进行保存?
SharedPreferences prefs;
prefs= PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = prefs.edit();
editor.putString("isSignIn", "Yes");
editor.commit();
尝试使用 String result = prefs.getString("isSignIn", "No");
,HERE 中的一些文档。顺便提一句。最好存储 boolean
而不是 String
任何困惑的人我可以给你一个简单的代码:
// 您可以为 sharedPreferences 创建单独的 class 并在每个 activity
中使用它
public class UserLoginPref {
private Context context;
private SharedPreferences sharedPreferences;
private String Phone;
private boolean isSignIn;
public void setIsSignIn(boolean isSignIn){
sharedPreferences.edit().putBoolean("isSignIn",isSignIn).commit();
}
public boolean getIsSignIn(){
isSignIn = sharedPreferences.getBoolean("isSignIn",false);
}
public String getPhone() {
String mobile = sharedPreferences.getString("Phone","");
return mobile;
}
public void setPhone(String phone) {
sharedPreferences.edit().putString("Phone",phone).commit();
}
public UserLoginPref(Context context){
this.context = context;
sharedPreferences = context.getSharedPreferences("UserLoginPref",Context.MODE_PRIVATE);
}
public void logOutUser(){
sharedPreferences.edit().clear();
setPhone("");
}
}
// And use it in your activity like this
UserLoginPref userPref = new UserLoginPref(this);
userPref.setIsSignIn(true);
//Initialize shared preferences
SharedPreferences sharedPreferences = this.getActivity().getSharedPreferences("com.your.package", Context.MODE_PRIVATE);
//Write the value to shared preferences
sharedPreferences.edit().putBoolean("isSignIn", true).apply();
//Get the value from shared preferences
sharedPreferences.getBoolean("isSignIn", default_value);
我有一个在我的大部分项目中使用的管理器文件。下面是相关代码。
class PreferenceManager constructor(
private val context: Context
) {
private var sharedPreferences: SharedPreferences =
context.getSharedPreferences(context.packageName, Context.MODE_PRIVATE)
companion object {
const val USER_ID = "user_id"
}
fun clearSharedPreferences(sessionExpired: Boolean) {
context.getSharedPreferences(context.packageName, 0).edit().clear().apply()
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
preferences.edit().clear().apply()
}
fun saveBooleanValue(key: String, value: Boolean) {
sharedPreferences.edit().putBoolean(key, value).apply()
}
fun getBooleanValue(key: String): Boolean {
return sharedPreferences.getBoolean(key, false)
}
fun saveStringValue(key: String, value: String) {
sharedPreferences.edit().putString(key, value).apply()
}
fun getStringValue(key: String): String? {
return sharedPreferences.getString(key, null)
}
fun saveIntValue(key: String, value: Int) {
sharedPreferences.edit().putInt(key, value).apply()
}
fun getIntValue(key: String): Int {
return sharedPreferences.getInt(key, 0)
}
}
以上 class 有所有吸气剂和 setter。在需要保存数据的地方,只需调用 Preference 实例上的 save 方法即可。获取数据也是如此。这样,您将有一个中心点来管理插入和获取数据。将来您可以在一个中心位置添加任何类型的加密,这是您的偏好 class 我刚刚分享的。此外,您将拥有在伴随对象中定义键的中心点。您可以从项目的任何位置访问它。
如何获取 SharedPrefrences 值,例如,在片段中获取登录状态以进行保存?
SharedPreferences prefs;
prefs= PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = prefs.edit();
editor.putString("isSignIn", "Yes");
editor.commit();
尝试使用 String result = prefs.getString("isSignIn", "No");
,HERE 中的一些文档。顺便提一句。最好存储 boolean
而不是 String
任何困惑的人我可以给你一个简单的代码:
// 您可以为 sharedPreferences 创建单独的 class 并在每个 activity
中使用它public class UserLoginPref {
private Context context;
private SharedPreferences sharedPreferences;
private String Phone;
private boolean isSignIn;
public void setIsSignIn(boolean isSignIn){
sharedPreferences.edit().putBoolean("isSignIn",isSignIn).commit();
}
public boolean getIsSignIn(){
isSignIn = sharedPreferences.getBoolean("isSignIn",false);
}
public String getPhone() {
String mobile = sharedPreferences.getString("Phone","");
return mobile;
}
public void setPhone(String phone) {
sharedPreferences.edit().putString("Phone",phone).commit();
}
public UserLoginPref(Context context){
this.context = context;
sharedPreferences = context.getSharedPreferences("UserLoginPref",Context.MODE_PRIVATE);
}
public void logOutUser(){
sharedPreferences.edit().clear();
setPhone("");
}
}
// And use it in your activity like this
UserLoginPref userPref = new UserLoginPref(this);
userPref.setIsSignIn(true);
//Initialize shared preferences
SharedPreferences sharedPreferences = this.getActivity().getSharedPreferences("com.your.package", Context.MODE_PRIVATE);
//Write the value to shared preferences
sharedPreferences.edit().putBoolean("isSignIn", true).apply();
//Get the value from shared preferences
sharedPreferences.getBoolean("isSignIn", default_value);
我有一个在我的大部分项目中使用的管理器文件。下面是相关代码。
class PreferenceManager constructor(
private val context: Context
) {
private var sharedPreferences: SharedPreferences =
context.getSharedPreferences(context.packageName, Context.MODE_PRIVATE)
companion object {
const val USER_ID = "user_id"
}
fun clearSharedPreferences(sessionExpired: Boolean) {
context.getSharedPreferences(context.packageName, 0).edit().clear().apply()
val preferences = PreferenceManager.getDefaultSharedPreferences(context)
preferences.edit().clear().apply()
}
fun saveBooleanValue(key: String, value: Boolean) {
sharedPreferences.edit().putBoolean(key, value).apply()
}
fun getBooleanValue(key: String): Boolean {
return sharedPreferences.getBoolean(key, false)
}
fun saveStringValue(key: String, value: String) {
sharedPreferences.edit().putString(key, value).apply()
}
fun getStringValue(key: String): String? {
return sharedPreferences.getString(key, null)
}
fun saveIntValue(key: String, value: Int) {
sharedPreferences.edit().putInt(key, value).apply()
}
fun getIntValue(key: String): Int {
return sharedPreferences.getInt(key, 0)
}
}
以上 class 有所有吸气剂和 setter。在需要保存数据的地方,只需调用 Preference 实例上的 save 方法即可。获取数据也是如此。这样,您将有一个中心点来管理插入和获取数据。将来您可以在一个中心位置添加任何类型的加密,这是您的偏好 class 我刚刚分享的。此外,您将拥有在伴随对象中定义键的中心点。您可以从项目的任何位置访问它。