Как передать целое число из одного действия в другое?
Я хотел бы передать новое значение для целого из одного действия в другое.
то есть:.
Активность B содержит
integer[] pics = { R.drawable.1, R.drawable.2, R.drawable.3}
Я хотел бы, чтобы активность A передала новое значение активности B:
integer[] pics = { R.drawable.a, R.drawable.b, R.drawable.c}
Итак, как-то через
private void startSwitcher() {
Intent myIntent = new Intent(A.this, B.class);
startActivity(myIntent);
}
Я могу установить это целочисленное значение.
Я знаю, что это может быть сделано каким-то образом с помощью пакета, но я не уверен, как получить эти значения от Activity A до Activity B.
Ответы
Ответ 1
Это просто. На стороне отправителя используйте Intent.putExtra
:
Intent myIntent = new Intent(A.this, B.class);
myIntent.putExtra("intVariableName", intValue);
startActivity(myIntent);
На стороне получателя используйте Intent.getIntExtra
:
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);
Ответ 2
Это два метода, которые вы можете использовать для передачи целого числа. Один из них показан ниже.
класс 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);
Другой метод преобразует целое число в строку и использует следующий код.
класс A.class
Intent intent = new Intent(A.this, B.class);
Bundle extras = new Bundle();
extras.putString("StringVariableName", intValue + "");
intent.putExtras(extras);
startActivity(intent);
Приведенный выше код передаст ваше целочисленное значение в виде строки в класс B. В классе B получите строковое значение и снова преобразуйте его как целое число, как показано ниже.
B.class
Bundle extras = getIntent().getExtras();
String stringVariableName = extras.getString("StringVariableName");
int intVariableName = Integer.parseInt(stringVariableName);
Ответ 3
В действии A
private void startSwitcher() {
int yourInt = 200;
Intent myIntent = new Intent(A.this, B.class);
intent.putExtra("yourIntName", yourInt);
startActivity(myIntent);
}
в действии B
int score = getIntent().getIntExtra("yourIntName", 0);
Ответ 4
В поле "Сфера отправителя":
Intent passIntent = new Intent(getApplicationContext(), "ActivityName".class);
passIntent.putExtra("value", integerValue);
startActivity(passIntent);
В поле действия получателя:
int receiveValue = getIntent().getIntExtra("value", 0);