用户可以从活动中返回的两种方式之一:
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;
}
}
但是当活动从堆栈中弹出时,这个逻辑不会被击中。我可以在哪里处理弹出行为时会发生什么?
谢谢大家
答案 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"):