我创建了3项活动:firstActivity
,secondActivity
和thirdActivity
。
firstActivity
是主要活动。secondActivity
仅在收到短信时才有效,然后将短信发送至thirdActivity
。thirdActivity
将字符串值转换为double值,然后将double值发送到firstActivity
。我可以将值从secondActivity
发送到thirdActivity
,但我不知道如何将值从thirdActivity
传递到firstActivity
。请告诉我如何做到这一点。
答案 0 :(得分:1)
有几种方法。
可以使用自定义应用程序类来存储整个应用程序的“全局值”。这样,您可以在firstActivity
中设置值,并在thirdActivity
中使用它们。
查看this SO问题,了解如何在Android应用程序中存储全局状态。
答案 1 :(得分:1)
每当你有一个为结果调用的活动时,就像在这种情况下你有thirdActivity一样,你总是可以使用方法startActivityForResult而不仅仅是startActivity。一旦thirdActivity完成了它的处理并且想要返回结果值,它应该调用setResult,就是这样。
这种方法的问题在于你在中间有第二个活动。真的有必要吗?
答案 2 :(得分:0)
感谢您的帮助。现在我可以将第三个Activity的值传递给firstActivity,这就是我的工作方式。
第三项活动:
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();
}
}