2011-12-22 38 views
4

我有一個活動ItemList.java。當用戶點擊項目時。它開始新的活動.let的說ItemDetailAcitivty.java如何從B活動通知A列表數據已更改?

我想要做的是當用戶按下ItemDetailAcitivty.java上的按鈕。然後它應該告訴ItemList.java刷新列表項。 我知道myListAdapter.notifyDataSetChanged()會刷新列表。但ItemList.java怎麼知道什麼時候改變數據

我不知道靜態方法或變量。我知道如何使用處理程序,但不知道如何將處理程序傳遞給其他活動。

我在想什麼是創建我自己的事件/監聽器,並與列表關聯,所以當事件觸發然後改變列表,更多的是可能是廣播接收器幫助我?

+0

將ItemList的引用傳遞給ItemDetailActivity並調用一些刷新函數? – 2011-12-22 14:10:17

+0

使用['ContentProvider'](http://developer.android.com/guide/topics/providers/content-providers.html)。這是一些工作,但它可以帶來回報。 – 2011-12-22 14:12:39

回答

3

您可以試試startActivityForResult(intent_to_activity)並在同一itemlist類中覆蓋該方法:onActivityResult()。在這種方法中,通知數據集的更改應該反映出來。

+0

這通常是你在大多數基本情況下應該做的 – binnyb 2011-12-22 14:14:25

1

你真的不應該認爲你的舊活動的引用將保持活着的Android。如果這全部基於數據庫,那麼您確實無需爲您的ItemList進行任何更新。如果沒有,您可以在您的ItemList活動的onResume()中簡單地撥打myListAdapter.notifyDataSetChanged()

+0

這不是什麼恐懼先生:(我不想每次都這麼做 – Arslan 2011-12-22 14:19:45

+0

好吧,如果你絕對相信你唯一一次修改那些數據是在ItemDetailView,然後你可以做什麼城市建議或設置一個靜態布爾標誌的地方,然後你只是檢查該標誌,看看你是否需要更新你的ItemList。最後,它並不罕見的做法是更新你的列表onResume。您的活動可能會暫停幾天,幾周甚至幾個月。 – 2011-12-22 14:29:22

相關問題