如何在两个Activity之间传递整数?

46
我想在两个Activity之间传递一个整数的新值。例如:Activity 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);
}

我可以设置这个整数值。

我知道可以通过Bundle实现,但是我不确定如何将这些值从Activity A传递到Activity B。

4个回答

140

很简单。在发送端使用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);

8
有两种方法可以传递一个整数。其中一种如下所示。 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类
Intent intent = new Intent(A.this, B.class);
Bundle extras = new Bundle();
extras.putString("StringVariableName", intValue + "");
intent.putExtras(extras);
startActivity(intent);

以上代码将把您的整数值作为字符串传递给B类。在B类中,获取字符串值并再次转换为整数,如下所示。

B类

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

4

在活动 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);

0
在发送方活动中:
Intent passIntent = new Intent(getApplicationContext(), "ActivityName".class);
passIntent.putExtra("value", integerValue);
startActivity(passIntent);

在接收器活动端:
int receiveValue = getIntent().getIntExtra("value", 0);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接