通过“onBackPressed()”创建一个自动回到上一个屏幕的活动

时间:2014-07-17 07:39:58

标签: java android android-intent android-activity parameters

我有一个重复的活动" 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中,但这似乎不起作用。

4 个答案:

答案 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方法?