Bonjour,

Je souhaiterais garder une variable en memoire.
J'ai deux classes. Une classe appelée Ip.java qui récupère une adresse IP et l'autre nommée Connexion.java qui permet de se servir de cette variable (ip).
Cette variable Ip permet de définir à mon device quel est le serveur qu'il doit écouter.

Bon aujourd'hui quand l'utilisateur rentre l'adresse IP elle est gardée en mémoire temps que l'application ne se ferme pas (killer le process) et je souhaiterais y remédier.

J'ai vu que l'on pouvait mettre cette variable dans la mémoire du telephone
http://developer.android.com/guide/t...rage.html#pref

Mais j'ai un problème ou mettre ces deux bou de code ? dans quelle classe ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
  // Restore preferences
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       boolean silent = settings.getBoolean("silentMode", false);
       setSilent(silent);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
    @Override
    protected void onStop(){
       super.onStop();
 
      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putBoolean("silentMode", mSilentMode);
 
      // Commit the edits!
      editor.commit();
    }
Donc j'ai fais des tests. Voici mes deux classes.

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
public class Ip extends Activity {
 
	private static String ip;
	public static final String PREFS_NAME = "MyPrefsFile";
 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_ip);
 
		Button paramButton = (Button) findViewById(R.id.validate);
		paramButton.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
				EditText tonEdit = (EditText)findViewById(R.id.Ip);
				ip = tonEdit.getText().toString();
 
				if (ip.equals("")){
					Toast.makeText(Ip.this,
							R.string.erreur6,
							Toast.LENGTH_SHORT).show();
					return;
				}
 
				else {
 
					 // Restore preferences
				       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
				       String silent = settings.getString("ip", ip);
				       setSilent(silent);
 
					Intent intent = new Intent(Ip.this,
						Parametres.class);
					// on appelle notre activité
					startActivity(intent);
				}
			}
		});
 
		Button returnButton = (Button) findViewById(R.id.retour);
		returnButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				finish();
			}
		});
 
	}
 
	@Override
    protected void onStop(){
       super.onStop();
 
      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putString("silentMode", ip);
 
      // Commit the edits!
      editor.commit();
    }
 
	public static String getIp(){
		return ip;
	}
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public class Connexion {
	public static String strUrl(){
		return "http://"+Ip.getIp()+"/Applications/";
	}
}
De plus j'ai une erreur sur Eclipse ne le reconnait pas.

Alors j'espère avoir été clair et j'espère que vous pourrez m'aider.

Cordialement