所以我刚开始使用JAVA,我一直在尝试将用户名和密码的简单组合保存到SharedPreferences中。虽然我不太确定我是否理解这实际上是如何运作的。所以这是我目前的代码;
app/Http/Middleware/RedirectIfAuthenticated.php
现在当然这不起作用,因为我没有任何getActivity(),但我想知道它应该是什么?或者我如何保存我发送给该功能的已有数据。
我理想的结果是能够从其他活动中获取用户名和密码。现在我宁愿不使用本地文件,但坚持使用SharedPreferences。
提前多多谢谢!
答案 0 :(得分:2)
嘿,创建一个类似于下面的泛型类,无论您希望在共享首选项中存储值,您都可以使用它各自的函数来存储特定数据类型。
import android.content.Context;
import android.content.SharedPreferences;
public class SharedPrefManager {
public static SharedPreferences getSharedPref(Context mContext) {
SharedPreferences pref = mContext.getSharedPreferences(Constants.SETTINGS, Context.MODE_PRIVATE);
return pref;
}
public static void setPrefVal(Context mContext, String key, String value) {
if(key!=null){
SharedPreferences.Editor edit = getSharedPref(mContext).edit();
edit.putString(key, value);
edit.commit();
}
}
public static void setIntPrefVal(Context mContext, String key, int value) {
if(key!=null){
SharedPreferences.Editor edit = getSharedPref(mContext).edit();
edit.putInt(key, value);
edit.commit();
}
}
public static void setLongPrefVal(Context mContext, String key, Long value) {
if(key!=null){
SharedPreferences.Editor edit = getSharedPref(mContext).edit();
edit.putLong(key, value);
edit.commit();
}
}
public static void setBooleanPrefVal(Context mContext, String key, boolean value) {
if(key!=null){
SharedPreferences.Editor edit = getSharedPref(mContext).edit();
edit.putBoolean(key, value);
edit.commit();
}
}
public static String getPrefVal(Context mContext, String key) {
SharedPreferences pref = getSharedPref(mContext);
String val = "";
try {
if (pref.contains(key))
val = pref.getString(key, "");
else
val = "";
}catch (Exception e){
e.printStackTrace();
}
return val;
}
public static int getIntPrefVal(Context mContext, String key) {
SharedPreferences pref = getSharedPref(mContext);
int val = 0;
try {
if(pref.contains(key)) val = pref.getInt(key, 0);
}catch (Exception e){
e.printStackTrace();
}
return val;
}
public static Long getLongPrefVal(Context mContext, String key) {
SharedPreferences pref = getSharedPref(mContext);
Long val = null;
try{
if(pref.contains(key)) val = pref.getLong(key, 0);
}catch (Exception e){
e.printStackTrace();
}
return val;
}
public static boolean getBooleanPrefVal(Context mContext, String key) {
SharedPreferences pref = getSharedPref(mContext);
boolean val = false;
try{
if(pref.contains(key)) val = pref.getBoolean(key, false);
}catch (Exception e){
e.printStackTrace();
}
return val;
}
}
如果有任何疑问,请询问。