2016-10-09 1 views
0

in activity1 (emailpreferences) abruft, nehme ich die E-Mail durch einen editedtext. Ich möchte diese E-Mail verwenden, wieder auf reopenning AnwendungWie man Werte speichert und sie von geteilten Präferenzen

Dies ist mein Code:

public static final String MyPREFERENCES = "MyPref"; 
public static final String Email = "emailkey"; 
SharedPreferences sharedPreferences; 


protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.emailpreferences); 

    edit1=(EditText)findViewById(R.id.editText); 
    buttonpref=(Button)findViewById(R.id.button); 

    sharedPreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

    buttonpref.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      String email = edit1.getText().toString(); 

      SharedPreferences.Editor editor = sharedPreferences.edit(); 

      editor.putString(Email, email); 

Aber die E-Mail nicht abgerufen wird, wenn die folgende getan wird:

public class MainActivity extends AppCompatActivity { 

Text name; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    SharedPreferences sharedPreferences = PreferenceManager 
      .getDefaultSharedPreferences(getApplicationContext()); 
    String name = sharedPreferences.getString(Email, "email"); 
    Toast.makeText(this,name, Toast.LENGTH_LONG).show(); 
} 
} 

Antwort

1

Zum einen müssen Sie Ein Commit- oder Apply-Befehl in Ihrem Editor, um den Schlüssel dem Wert zuzuweisen.

SharedPreferences.Editor editor = sharedPreferences.edit(); 
editor.putString(Email, email); 
editor.commit(); //or editor.apply(); 

PreferenceManager und SharedPreference sind unterschiedlich. Bitte lesen Sie sie weiter. Sie erhalten den Wert auf diese Weise.

SharedPreferences sharedPreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
String name = sharedPreferences.getString(Email, "email"); 
+0

Endlich kann ich E-Mails von einer Aktivität zu einer anderen speichern. Danke an alle für Hinweise. – stefan

+0

Willkommen :), bitte markieren Sie die Antwort als richtig. (Es gibt ein Häkchen unter dem Abstimmknopf links neben der Antwort) – suku

0

speichern Verwendung dieses:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString(Email, email); 
editor.apply(); 

Verwendung dieses abzurufen:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
String savedEmail = preferences.getString(Email, "email"); 

Ich würde Ihnen vorschlagen, eine Utility-Klasse zu machen und eine funtion zum Speichern und retreiving sharedPreferences schaffen so dass Sie diesen Bausteincode nicht immer wieder schreiben müssen.

Verwandte Themen