我有几个 Activity 。 Activity 一 开始于:
Intent intent_user = new Intent(Friends_Activity.this, UserProfile_Activity.class);
intent_user.putExtra("id", id); //id="1"
startActivity(intent_user);
接下来,用户可以调用 Activity B(在这个 Activity 中,也可以调用 Activity A,但“id”是其他的)
Intent intent_user = new Intent(Friends_Activity.this, UserProfile_Activity.class);
intent_user.putExtra("id", id); //id="2"
startActivity(intent_user);
现在如果我点击两次后退键,我返回第一个 Activity A,但 id 不是 = 1,id = 2..
如何保存 id 的先前值??
抱歉我的英语不好...
最佳答案
好吧,我创建了一个包含三个 Activity 的简单应用程序:MainActivity (A)、TwoActivity (B) 和 ThreeActivity (C)。布局中的默认 TextView 我更改为按钮并将它们的值更改为“main”、“2”和“3”。流程是A->B->C->B->C->B...
在每个 onCreate 方法中,我添加了以下几行:
Intent intent = getIntent();
if (intent != null) {
Toast.makeText(this, intent.getStringExtra("id"), Toast.LENGTH_LONG)
.show();
}
Button button = (Button) findViewById(R.id.button_three);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent_user = new Intent(ThreeActivity.this,
TwoActivity.class); //this is for three activity.
//Intent intent_user = new Intent(TwoActivity.this, ThreeActivity.class); //for two activity
//Intent intent_user = new Intent(MainActivity.this, TwoActivity.class);//for main activity
intent_user.putExtra("id", "3");
startActivity(intent_user);
}
});
启动时,先是toast为空,然后是:B(1)、C(2)、B(3)、C(2)、B(3)等。
您如何检索 id 的先前值?您可以通过 getIntent() 及其附加功能保存它(当然,如果它是 String)。
关于android - 回到 Activity 时, Intent 额外丢失..,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556084/