web-dev-qa-db-fra.com

Comment passer un entier d'une activité à une autre?

Je voudrais passer une nouvelle valeur pour un entier d'une activité à une autre. c'est à dire.:

L'activité B contient un

integer[] pics = { R.drawable.1, R.drawable.2, R.drawable.3}

Je souhaite que l'activité A transmette une nouvelle valeur à l'activité B:

integer[] pics = { R.drawable.a, R.drawable.b, R.drawable.c}

Alors qu'en quelque sorte

private void startSwitcher() {
    Intent myIntent = new Intent(A.this, B.class);
    startActivity(myIntent);
}

Je peux définir cette valeur entière.

Je sais que cela peut être fait d'une manière ou d'une autre avec un ensemble, mais je ne sais pas comment je pourrais faire passer ces valeurs de l'activité A à l'activité B.

35
benbeel

C'est simple. Côté expéditeur, utilisez Intent.putExtra :

Intent myIntent = new Intent(A.this, B.class);
myIntent.putExtra("intVariableName", intValue);
startActivity(myIntent);

Côté récepteur, utilisez Intent.getIntExtra :

 Intent mIntent = getIntent();
 int intValue = mIntent.getIntExtra("intVariableName", 0);
112
Paresh Mayani

Ce sont deux méthodes que vous pouvez utiliser pour passer un entier. L'un est comme indiqué ci-dessous.

A.class

Intent myIntent = new Intent(A.this, B.class);
myIntent.putExtra("intVariableName", intValue);
startActivity(myIntent);

B.class

Intent intent = getIntent();
int intValue = intent.getIntExtra("intVariableName", 0);

L'autre méthode convertit l'entier en une chaîne et utilise le code suivant.

A.class

Intent intent = new Intent(A.this, B.class);
Bundle extras = new Bundle();
extras.putString("StringVariableName", intValue + "");
intent.putExtras(extras);
startActivity(intent);

Le code ci-dessus transmettra votre valeur entière sous forme de chaîne à la classe B. Sur la classe B, récupérez la valeur de chaîne et convertissez-la à nouveau sous forme d'entier, comme illustré ci-dessous.

B.class

   Bundle extras = getIntent().getExtras();
   String stringVariableName = extras.getString("StringVariableName");
   int intVariableName = Integer.parseInt(stringVariableName);
5
Daniel Nyamasyo

Dans l'activité A

private void startSwitcher() {
    int yourInt = 200;
    Intent myIntent = new Intent(A.this, B.class);
    intent.putExtra("yourIntName", yourInt);
    startActivity(myIntent);
}

dans l'activité B

int score = getIntent().getIntExtra("yourIntName", 0);
1
Lone Coder