您应该使用startActivityForResult
来启动您的ActivityClassA和ActivityClassB,然后使用onActivityResult
来显示结果。你的结构应该如下所示。
在主要活动:
private static int ACT_A = 1;
private static int ACT_B = 2;
private int resultA = 0;
private int resultB = 0;
public void onCreate(Bundle saved) {
...
myTextView.setText("" + (resultA + resultB));
...
}
开始每个ActivityClassA和ActivityClassB为:
Intent i = new Intent(this, ActivityClassA.class);
startActivityForResult(i, ACT_A);
或
Intent i = new Intent(this, ActivityClassB.class);
startActivityForResult(i, ACT_B);
在你ActivityClassA和ActivityClassB,你就会有一个代码像这样:
int curScore;
...
Intent resp = new Intent();
resp.putExtra("score", curScore);
setResult(1, resp);
finish();
最后,在您的主要活动,您将有方法onActivityResult
:
public void onActivityResult(int reqCode, int respCode, Intent i) {
if(respCode == 1) {
switch(reqCode) {
case ACT_A: resultA = i.getIntExtra("score", resultA);
break;
case ACT_B: resultB = i.getIntExtra("score", resultB);
break;
}
myTextView.setText("" + (resultA + resultB));
}
}
看一看在'Activity'类方法'startActivityForResult'和'onActivityResult'。 – 2013-04-07 12:49:27