说我有2个活动(ActivityOne和ActivityTwo)。我如何从ActivityOne调用ActivityTwo?那么我将如何从ActivityTwo返回ActivityOne?例如,我有一个列表视图,其中包含主机上的所有联系人。当我点击联系人时,另一个活动会显示信息并允许编辑该联系人。然后我可以点击后退按钮,在调用ActivityTwo之前我会回到ActivityOne所处的确切状态。我在想一个Intent对象,但我不确定。有人可以发布一些代码吗?
答案 0 :(得分:3)
在您的第一个活动(AcitvityOne)中,您可以致电
Intent intent = new Intent(this, ActivityTwo.class);
startActivityForResult(intent, CODE);
然后你可以覆盖
public void onActivityResult(int reqCode, int resultCode, Intent data) {
接收此活动的结果
答案 1 :(得分:3)
在您的示例中,您似乎想要在Activity One和Activity Two之间传递数据(即您要编辑的联系人的引用),因此您应该在Activity One中使用Bundle。 / p>
Intent myIntent = new Intent(this, ActivityTwo.class);
myIntent.putExtra("CONTACT", position);
this.startActivity(myIntent);
“CONTACT”是一个键,位置是一个值(之前定义的位置,它可能是你想要的任何东西,例如一个整数。你检索它的方式根据它的类型略有不同是,请注意下面活动二代码中的getInt()。
在活动二中,在onCreate()
中Bundle extras = getIntent().getExtras();
if (extras != null) {
contact = extras.getInt("CONTACT");
/**Do what you want with the integer value you have retrieved**/
}
至于你的另一个问题,后退按钮会从任务堆栈的顶部删除当前的Activity,因此,你会返回上一个Activity,通常与你离开时的状态完全相同。
但是,如果手机内存不足,Android可能会终止进程或活动,因此从理论上讲,您之前的Activity可能不会显示与您离开时完全相同的状态。如果您有任何重要数据,则应在启动活动二之前保存它。如果您只是想以相同的状态返回Activity One以获得用户友好性,那么依靠后退按钮就可以了。