plusieurs paires/valeurs dans une SharedPrefernce
bonjour,
est-il possible de retourner plusieurs paires/valeurs dans une SharedPrefernce en direction d'une activité "appelante" (MainActivity)?
J'ai écrit le code suivant pour retourner l'adresse ip d'un serveur et un numéro de port à l'activité précédente lors de l'appui sur le bouton back du téléphone:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
super.onKeyDown(keyCode, event);
if (keyCode == KeyEvent.KEYCODE_BACK)
{
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
String addr = edText_ip.getText().toString();
editor.putString(ADDR_SERVEUR, addr); //valeur affectée à la clé
String port = edText_port.getText().toString();
editor.putString(PORT, port); //valeur affectée à la clé
editor.commit();
this.finish();
return true;
}
//return super.onKeyDown(keyCode, event);
return false;
} |
Au niveau de la MainActivity:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1) //code retourné par setParameterActivity
{
//relire dans une SharedPreferences
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String value = preferences.getString(ADDR_SERVEUR, "0.0.0.0");
String port = preferences.getString(PORT, "2000");
Log.d("add_serveur", value);
Log.d("port", port);
}
.... |
Dans add_serveur et port je n'ai que la valeur saisie dans le champ correspondant au port.
La valeur dans add_serveur semble écrasée par celle dans port.
Donc, est-il possible de stocker plusieurs valeurs dans une SharedPreference ? Ca me semblerait un minimum...
Ou alors faut-il s'y prendre autrement?
Merci