假设我在应用程序的主要活动中声明并初始化了以下变量:
public class MainActivity {
int numberOfBricks = 23;
int weightOfBrick = 13;
}
假设我然后转到应用程序的第二个活动,称为SecondActivity,我想计算砖块的总重量。我希望该过程可以是:
public class SecondActivity {
int totalWeight = MainActivity.numberOfBricks * MainActivity.weightOfBrick;
}
对吗?
答案 0 :(得分:3)
这是不正确的。 MainActivity.numberOfBricks
表示该变量是MainActivity
类的所有实例所共有的静态int,而所需的对象实际上是单个实例。您需要使用一个Intent才能到达SecondActivity
,并发送附加内容。
在MainActivity
中:
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("numBricks", numberOfBricks);
intent.putExtra("weight", weightOfBrick);
startActivity(intent);
在SecondActivity
的{{1}}中:
OnCreate()
使用多余的内容会使用Intent intent = getIntent();
int numBricks = intent.getIntExtra("numBricks");
int weight = intent.getIntExtra("weight");
int totalWeight = numBricks * weight;
可以收集的密钥将变量的数据放入意图中,只要知道密钥即可。
答案 1 :(得分:3)
不。借助android应用生命周期,您可以通过Intent对象开始第二个活动。
有了这个意图对象,您就可以做到
Intent intent = new Intent(ThisActivity.this, NextActivity.class);
startActivity(intent);
但是,您可以通过在intent对象上调用putExtra来将信息传递给该intent,如下所示:
intent.putExtra("NameForInformation", actualInformation)
例如
Intent intent = new Intent(ThisActivity.this, NextActivity.class);
intent.putExtra("totalWeight", (numberOfBricks*weightOfBrick);
startActivity(intent);
在第二个活动的onCreate中,您可以执行getIntent.getExtra(“ NameOfInformation”)来检索信息
例如
int totalWeight = (int) getIntent.getExtra("totalWeight");