在两个不同的SharedPreference中编写并获得相同的结果

时间:2016-08-19 16:31:42

标签: android mobile android-sharedpreferences

当我在Android上编程时尝试使用两个不同的字符串键值编写时,我遇到了问题。我有两个不同键的值相同。

SharedPreferences idUserPref = getSharedPreferences(getString(R.string.id_utilisateur), Context.MODE_PRIVATE);
SharedPreferences estConnectePref = getSharedPreferences((getString(R.string.estConnecte)), Context.MODE_PRIVATE);
SharedPreferences.Editor estConnecteEditor = estConnectePref.edit();
SharedPreferences.Editor userIdEditor = idUserPref.edit();
userIdEditor.putString(getString(R.string.id_utilisateur), result);
estConnecteEditor.putString(getString(R.string.estConnecte), "vrai");
userIdEditor.commit();
estConnecteEditor.commit();
String utilisateurId = idUserPref.getString(getString(R.string.id_utilisateur), "Invalid");
String estConnecte = estConnectePref.getString(getString(R.string.estConnecte), "faux");
Log.d("ConnexionActivity", "Id User : "+utilisateurId);
Log.d("ConnexionActivity", "est connecté : " + estConnecte);

,Logcat的结果是:

08-19 18:25:27.005 3882-3882/com.partenaires.legimetrie.legimetrieapp D/ConnexionActivity: Id User : vrai
08-19 18:25:27.005 3882-3882/com.partenaires.legimetrie.legimetrieapp D/ConnexionActivity: est connecté : vrai

我不明白为什么。有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

仅供参考:以xml格式共享首选项存储值,其名称为“共享首选项”。

因此,要使用不同的共享存储值首选项,您必须使用不同的名称进行共享首选项。

所以R.string.id_utilisateur和R.string.estConnecte必须是不同的名称。

答案 1 :(得分:0)

我发现了问题,这是因为我试图使用具有相同值的R.string.id_utilisateur和R.string.estConnecte,因此在strings.xml文件中,我只是更改了它们的值。