Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取片段中的SharedReferences值?_Java_Android_Android Fragments_Fragment_Sharedpreferences - Fatal编程技术网

Java 获取片段中的SharedReferences值?

Java 获取片段中的SharedReferences值?,java,android,android-fragments,fragment,sharedpreferences,Java,Android,Android Fragments,Fragment,Sharedpreferences,我如何获取SharedReferences值,例如下面的获取片段中的登录状态以进行保存 SharedPreferences prefs; prefs= PreferenceManager.getDefaultSharedPreferences(getActivity()); SharedPreferences.Editor editor = prefs.edit(); editor.putString("isSignIn", "Yes"); editor.

我如何获取SharedReferences值,例如下面的获取片段中的登录状态以进行保存

SharedPreferences prefs;
prefs= PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = prefs.edit();
editor.putString("isSignIn", "Yes");
editor.commit();

尝试使用
stringresult=prefs.getString(“isSignIn”、“No”),某些文档在中。顺便说一句,最好是存储
布尔值
而不是
字符串

任何感到困惑的人,我可以给你一个简单的代码:

//您可以为SharedReference创建单独的类,并在每个活动中使用它

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);

我有一个manager文件,我在我的大多数项目中都使用它。下面是代码

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)
}
}


上面的类有所有的getter和setter。无论何时需要保存数据,只要在首选项实例上调用save方法即可。获取数据也是如此。这样,您就有了管理器插入和获取数据的中心点。将来,您可以在一个中心位置添加任何类型的加密,这就是我刚才共享的首选类。此外,您将有一个中心点来定义伴生对象中的关键点。从项目的任何地方,您都可以访问此文件。

谢谢我的朋友,我尝试了此文件,并告诉您发生了什么!谢谢我试着用你的方式看结果谢谢你的帮助我很有兴趣使用你的代码。。。谢谢你的帮助
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)
}