Android - 在堆栈中弹出活动时传递意图

时间:2015-10-14 03:07:32

标签: android android-intent android-activity

用户可以从活动中返回的两种方式之一:

1)操作栏上的“home / up”按钮

2)后退按钮将活动从堆栈中弹出

我想在回去时传递一个arraylist,我将它设置为动作栏上的“home / up”按钮:

 public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
        switch (id) {
            case R.id.home:
                Intent retIntent = new Intent(getApplicationContext(),SecondaryActivity.class);
                retIntent.putExtra(MainActivity.GEN_MESSAGE,returnVal);
                startActivity(retIntent);
                return true;
    }
}

但是当活动从堆栈中弹出时,这个逻辑不会被击中。我可以在哪里处理弹出行为时会发生什么?

谢谢大家

1 个答案:

答案 0 :(得分:0)

您错过了setResult(RESULT_OK,retIntent);

在你的第二项活动中:

 Bundle b = new Bundle();
    b.putParcelableArrayList("key", arrayName);
    Intent retIntent = new Intent(getApplicationContext(),SecondaryActivity.class);
    retIntent.putExtra(MainActivity.GEN_MESSAGE,returnVal);
    i.putExtras(b);
    setResult(RESULT_OK,retIntent);
    startActivity(retIntent);

在第一个活动onActivityResult中:

Bundle extras = intent.getExtras();

使用extras.getString("key"):

获取您的数组