2016-08-08 11 views
0

Ich habe drei gemeinsame Vorlieben wie unten Code aaded. Und ich kann nur einen gemeinsamen Präferenzwert abrufen.Warum Shared Preference-Wert beim Abrufen nicht eingeht?

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putBoolean("Loggedin",true); 
      editor.putString("userId",userid); 
      editor.putString("pwd",password); 
      editor.apply(); 
      editor.commit(); 

Ich habe den folgenden Code zum Abrufen von einer anderen Aktivität verwendet. Ich kann nur den booleschen Wert abrufen. Andere Werte sind nicht da. den Standardwert für die Zeichenfolgenwerte abrufen. Bitte hilf mir.

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

       Boolean loggedin=preferences.getBoolean("Loggedin", false); 
       String userId=preferences.getString("userId", "0"); 
       String pwd=preferences.getString("pwd", "0"); 
+0

erhalten Sie Werte für eine andere Aktivität? – Developer

+0

Boolean logged = preferences.getBoolean ("Loggedin", false); Wie ru inniating Präferenzen – Sush

+0

@Singh ja. Ich erhalte Werte für eine andere Aktivität – irfan

Antwort

0

Verwenden Sie diesen Code

String userId=preferences.getString("userId", null); 
       String pwd=preferences.getString("pwd", null); 
+0

versuchte dies .. nicht funktioniert – irfan

0

geprüft, ob tatsächlich der Wert u in den Einstellungen speichern gespeichert werden oder nicht mit diesem Code

Boolean loggedin=preferences.getBoolean("Loggedin", false); 
String userId=preferences.getString("userId", null); 
String pwd=preferences.getString("pwd", null); 


if(userId==null || pwd==null) 
{ 
//data not therer 
} 
else 
{ 
//do something with data 
} 

und lassen Sie mich wissen, wenn ein Fehler aufgetreten ..

+0

versuchte dies, sowohl Benutzer-ID und Passwort ist Null – irfan

+0

zeigen Sie mir den Code von wo Sie Benutzer speichern und weitergeben .. – Manish

0

Ich denke, dass Sie nicht die SharedPreferences in einer korrekten Weise bekommen. Siehe doc für die Ex: https://developer.android.com/training/basics/data-storage/shared-preferences.html

Context context = getActivity(); 
SharedPreferences sharedPref = context.getSharedPreferences(
    getString(R.string.preference_file_key), Context.MODE_PRIVATE); 

Auch Sie müssen apply() UND commit() nicht nennen. Nur einer davon ist genug. Siehe die Javadoc für die Unterschiede zwischen ihnen.

0
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
Boolean loggedin=preferences.getBoolean("Loggedin", false); 
      String userId=preferences.getString("userId", ""); 
      String pwd=preferences.getString("pwd", ""); 

if(userId==null || userId==""||pwd==null ||pwd=="") 
{ 

} 
else 
{ 

} 
0

Versuchen Sie Code auf diese Weise.

Set-Werte in erster Aktivität

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putBoolean("Loggedin",true); 
    editor.putString("userId",userid); 
    editor.putString("pwd",password); 
    editor.apply(); 

Retrieve Wert in der zweiten Aktivität

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 

      Boolean loggedin=preferences.getBoolean("Loggedin", false); 
      String userId=preferences.getString("userId", ""); 
      String pwd=preferences.getString("pwd", ""); 
+0

versuchte dies. funktioniert nicht – irfan

+0

Ich werde bald mit Beispielen aktualisiert werden. – Developer

0

auf diese Weise benutzt für Werte von den gemeinsamen Vorlieben für Ihren Code abrufen.

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 

      Boolean loggedin=preferences.getBoolean("Loggedin", false); 
//Checking the value of userId and pwd,if they are null then there is no values of userId and pwd other than default. 
      if (userId != null && pwd != null) { 
     String userId = preferences.getString("userId", "0"); 
     String pwd = preferences.getString("pwd", "0"); 
    } else { 
     String userId = "0"; 
     String pwd = "0"; 
    }