2013-03-26 51 views
4

在活动之间传递数据时遇到问题。 ListActivity正在收集数据,并且当返回按钮被按下时返回到MainActivity,然后想通过onResume方法获取该数据,但我什么也没得到。发送数据到在后台运行的活动

这个问题怎么解决?

ListActivity.java

@Override 
public void finish() { 
    i = new Intent(ArrayListActivity.this, MainActivity.class); 
    i.putParcelableArrayListExtra(Constants.TAG_SELECTED_PRODUCT_LIST, selected_list); 
    super.finish(); 
} 

MainActivity.java

@Override 
protected void onResume() { 
    super.onResume(); 

    Bundle extras = getIntent().getExtras().getBundle(Constants.TAG_SELECTED_PRODUCT_LIST); 
    if(extras != null) { 
     selected_list = extras.getParcelableArrayList(Constants.TAG_SELECTED_PRODUCT_LIST); 


     myListView.setAdapter(new ProductAdapter(MainActivity.this, 
        R.layout.array_lisviewt_item_row, selected_list)); 
    } 
} 
+0

你使用了哪些标志进行活动?单任务,单顶等? – 2013-03-26 15:20:37

+0

其实..无:/我是新手 – Palaima 2013-03-26 15:23:46

回答

4

你可能想经由startActivityForResult(...)方法的第一个启动第二个活动。

该方法允许您将已启动活动的结果传输回启动活动。

从文档:

启动为您希望的结果,当它完成了一个活动。 当此活动退出时,您的onActivityResult()方法将使用给定的requestCode调用 。使用负的requestCode与调用startActivity(Intent)相同(该活动未作为 子活动启动)。

相关问题