我有一个重复的活动" x"这段代码的时间:
//create intent to start itself again with different parameters
Intent intent = getIntent();
intent.putExtra(CATEGORY_ID, temp.getCat_ID());
intent.putExtra(CATEGORY_SHOPID, temp.getShopID());
intent.putExtra(CATEGORY_SITEID, temp.getSiteID());
intent.putExtra(CATEGORY_NAME, temp.getCat_Name());
finish();
startActivity(intent);
我的目标是,当用户按下后退按钮时,相同的活动就像以前一样开始使用与之前相同的参数等。我尝试将它们保存在Activity ArrayList中,但这似乎不起作用。
答案 0 :(得分:1)
当您致电完成后,您的活动将结束。 如果您没有致电完成,您的活动就会转到后台。在这种情况下,当您在新活动中按下后退按钮时,您之前的活动就会出现。
我认为当你删除finish()时,它会起作用。
答案 1 :(得分:0)
如果您保存之前已设置的参数,则可以,但您需要从Intent
本身检索所有信息,并使用正确的数据重新填充您的活动。
必须这样做:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String categoryId = getIntent().getStringExtra(CATEGORY_ID);
// retrieve the others and populate your activity
}
答案 2 :(得分:0)
在您的活动中,重新开始活动
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
// and you have to make a intent to call this activity again with parameter other
finish(); // and call finish() here to close the old activity
}
return super.onKeyDown(keyCode, event);
}
希望这有帮助!
答案 3 :(得分:0)
您是否尝试重写onBackPressed方法?