Bonjour à tous,

J'aimerais sauvegarder la valeur de plusieurs int (donc des chiffres qui s'incrémentent) dans les TextViews d'une autre activité, j'ai essayé par les Internal Files du téléphone mais ça fonctionne pas vraiment.
Je vous poste mon code ici :

Ici c'est l'activité 1 où l'utilisateur trouve des Rings (anneaux) auxquels je fixe un nombre et en fonction de ce nombre cela fixe sa couleur :
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
 
public class GameActivity extends Activity {
 
    private Button searchButton, stockButton;
    public int nbRed, nbGreen, nbRing;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);
        searchButton = (Button)findViewById(R.id.searchButton);
        searchButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                addRing(); // Méthode voire ci-dessous
    }
       });
 
        stockButton = (Button) findViewById(R.id.stock);
        stockButton.setOnClickListener(new View.OnClickListener() { // Pour voir l'inventaire
            @Override
            public void onClick(View v) {
                Intent intentStock = new Intent(GameActivity.this, StockActivity.class);
                startActivity(intentStock);
            }
        });
    } // End onCreate()
 
public void addRing() {
        int color = (int)(Math.random()*2+1); // 1 is red, 2 is green
        int rings = (int)(Math.random()*2+0); // User can find 0 or 1 ring each time
        if(rings>0) {
            if(color == 1) {
                nbRed++;
                nbRing++;
            }
            if(color == 2) {
                nbGreen++;
                nbRing++;
            }
        }
}
Voici le code de ma 2ème activité, où les variables des int de l'activité 1 sont affichés dans des TextViews (j'aimerais que cet affichage ne soit pas remis à 0 chaque fois que l'on quitte l'application), j'ai essayé mais ça ne marche pas comme je le souhaite, j'aimerais que ça soit fait dans l'activité 1 mais je ne l'ai fait que dans la 2 car dans la 1 ça semble impossible?
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
 
import static myPackage.GameActivity.nbRed; // J'importe mes 3 int de l'activité 1 dans l'activité 2
import static myPackage.GameActivity.nbGreen;
import static myPackage.GameActivity.nbRing;
 
public class StockActivity extends Activity {
 
    Button update;
    TextView tvRed, tvGreen, tvNbRing;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_stock);
 
        tvRed = (TextView)findViewById(R.id.red_ring);
        tvGreen = (TextView)findViewById(R.id.green_ring);
        tvNbRing = (TextView)findViewById(R.id.nbRingTotal);
 
        tvRed.setText(String.valueOf(nbRed));
        tvGreen.setText(String.valueOf(nbGreen));
        tvNbRing.setText(String.valueOf(nbRing));
 
        update = (Button) findViewById(R.id.retour);
        update.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                update();
                // Intent intentRetour = new Intent(CapsuleActivity.this, JouerActivity.class);
                // startActivity(intentRetour);
            }
        });
    }
 
public void update() {
        // Read data
        try {
            FileInputStream fileInputStream = openFileInput("myText.txt");
            InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuffer stringBuffer = new StringBuffer();
            String lines;
            while ((lines=bufferedReader.readLine())!=null) {
                stringBuffer.append(lines+"\n");
            }
            tvRed.setText(stringBuffer.toString()); // J'ai juste testé avec un seul de mes ints
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        // Write data
        String Mytextmessage = String.valueOf(nbRed);
        try {
            FileOutputStream fileOutputStream = openFileOutput("myText.txt",MODE_PRIVATE);
            fileOutputStream.write(Mytextmessage.getBytes());
            fileOutputStream.close();
            Toast.makeText(getApplicationContext(),"Text Saved",Toast.LENGTH_LONG).show();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Cette fonction update() j'aimerais la mettre dans ma 1ère activité afin que les valeurs des ints de la 1ère activité soient sauvegardés dans les TextViews de la 2ème activité, car si je quitte l'application sans cette fonction ça ne marche pas et cette méthode update() ne fonctionne pas vraiment car il y a l'écriture et la lecture dans la même méthode.
Aidez moi s'il vous plait.