Garder une variable en mémoire
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:
1 2 3 4
| // Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
setSilent(silent); |
Code:
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:
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:
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