SharedPreferences 相同的值
SharedPreferences same value
我只是想问一个关于 sharedPreferences 的快速问题:我的所有键似乎都被最后一个值覆盖了:
SessionManagement.class
public class SessionManagement {
SharedPreferences pref;
SharedPreferences.Editor editor;
Context _context;
private static final String PREF_NAME = "UserSession";
public static final String KEY_1 = "0";
public static final String KEY_2 = "0";
public SessionManagement(Context context){
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
public void SaveValues(String value, String fragment){
if(fragment == "fragment1"){
editor.putString(KEY_1, value).commit();
}
if(fragment == "fragment2"){
editor.putString(KEY_2, value).commit();
}
}
public String getValues(String fragment){
String value = "";
if(fragment == "fragment1"){
value = pref.getString(KEY_1, "");
}
if(fragment == "fragment2"){
value = pref.getString(KEY_2, "");
}
return value;
}
MainActivity.class
SessionManagement session;
session = new SessionManagement(getActivity().getApplicationContext());
//Save Values
session.SaveValues("1","fragment1");
session.SaveValues("2","fragment2");
//Read Values
tv_temp.setText(session.getValues("fragment1") + ", " +
session.getValues("fragment2"));
我的预期输出如下所示:1、2
但似乎第一个键被第二个键覆盖所以我的输出如下所示:2, 2
我的函数中是否需要更改任何内容才能获得正确的输出 (1, 2)?
BR
您的两个键具有相同的值(即 "0"
)。尝试更改其中之一,您的问题应该得到解决。 :)
你犯了一个错误。查看您为 KEU_1
和 KEY_2
定义的值,它们具有相同的值。将其替换为以下值:
public static final String KEY_1 = "0";
public static final String KEY_2 = "1";
我只是想问一个关于 sharedPreferences 的快速问题:我的所有键似乎都被最后一个值覆盖了:
SessionManagement.class
public class SessionManagement {
SharedPreferences pref;
SharedPreferences.Editor editor;
Context _context;
private static final String PREF_NAME = "UserSession";
public static final String KEY_1 = "0";
public static final String KEY_2 = "0";
public SessionManagement(Context context){
this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}
public void SaveValues(String value, String fragment){
if(fragment == "fragment1"){
editor.putString(KEY_1, value).commit();
}
if(fragment == "fragment2"){
editor.putString(KEY_2, value).commit();
}
}
public String getValues(String fragment){
String value = "";
if(fragment == "fragment1"){
value = pref.getString(KEY_1, "");
}
if(fragment == "fragment2"){
value = pref.getString(KEY_2, "");
}
return value;
}
MainActivity.class
SessionManagement session;
session = new SessionManagement(getActivity().getApplicationContext());
//Save Values
session.SaveValues("1","fragment1");
session.SaveValues("2","fragment2");
//Read Values
tv_temp.setText(session.getValues("fragment1") + ", " +
session.getValues("fragment2"));
我的预期输出如下所示:1、2
但似乎第一个键被第二个键覆盖所以我的输出如下所示:2, 2
我的函数中是否需要更改任何内容才能获得正确的输出 (1, 2)?
BR
您的两个键具有相同的值(即 "0"
)。尝试更改其中之一,您的问题应该得到解决。 :)
你犯了一个错误。查看您为 KEU_1
和 KEY_2
定义的值,它们具有相同的值。将其替换为以下值:
public static final String KEY_1 = "0";
public static final String KEY_2 = "1";