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);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 @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(); }
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; } }De plus j'ai une erreur sur
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/"; } }Eclipse ne le reconnait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part setSilent(silent);
Alors j'espère avoir été clair et j'espère que vous pourrez m'aider.
Cordialement
Partager