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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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