2013-03-26 71 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)相同(該活動未作爲 子活動啓動)。