我创建了3个活动:firstActivity、secondActivity和thirdActivity。
firstActivity是主要的活动。secondActivity只有在收到短信后才能工作,然后将消息发送给thirdActivity。thirdActivity将字符串值转换为双值,然后将双值发送到firstActivity。我可以将值从secondActivity发送到thirdActivity,但我不知道如何将值从thirdActivity传递到firstActivity。请告诉我该怎么做。
发布于 2012-01-17 19:26:51
要做到这一点,有几种方法。
其中之一是使用自定义应用程序类为整个应用程序存储某种“全局值”。这样,您可以在firstActivity中设置值,并在thirdActivity中使用它们。
看看这,所以问题来学习如何在安卓应用程序中存储全局状态。
发布于 2012-01-17 20:32:27
每当您有一个调用结果的活动时,就像本例中的thirdActivity一样,您可以始终使用startActivityForResult方法,而不是只使用startActivity。一旦thirdActivity完成了它的处理,并且它想返回结果值,它应该调用setResult,就这样。
这里这种方法的问题是,中间有一些secondActivity。真的有必要吗?
发布于 2012-01-20 16:02:25
谢谢你的帮助。现在我可以将值从thirdActivity传递给firstActivity,这就是我所做的。
ThirdActivity:
public class ThirdActivity extends Activity {
double value1, value2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
value1 = Double.parseDouble(value1FromSecondActivity);
value2 = Double.parseDouble(value2FromSecondActivity);
Intent intent = new Intent(this, FirstActivity.class);
intent.putExtra("Value1", value1);
intent.putExtra("Value2", value2);
startActivity(intent);
finish();
}
} FirstActivity:
public class FirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
@Override
protected void onResume() {
Bundle extras = getIntent().getExtras();
if (extras != null) {
dValue1 = extras.getDouble("Value1");
dValue2 = extras.getDouble("Value2");
Toast.makeText(getBaseContext(), dValue1 + " : " + dValue2, Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getBaseContext(), "Null", Toast.LENGTH_SHORT).show();
}
super.onResume();
}
}https://stackoverflow.com/questions/8900445
复制相似问题