2013-02-19 59 views
2

我知道有很簡單的機制來在活動之間傳遞對象。 我通常使用BundleputParcelable()或者把Serializable(),但我知道它實際上是通過打包和解包對象傳遞原始數據,而沒有保留引用。如何在Android應用程序中傳遞引用?

但現在我的問題是不同的 - 我需要通過參考一些服務和其他活動。有沒有辦法做到這一點?


也許我解釋上真正的問題我的問題:

  1. 我有一個簡單的類City,其他的事情天氣數據中存儲。
  2. 我把它保存在ListFragment並在那裏顯示。
  3. 我也有片段與GoogleMap,其中顯示城市與天氣列表。

如何在我的應用程序中存儲cities: List<City>

回答

4

由於問題的對象是一個簡單的列表,你可以擴展的應用和存儲在該列表:

public class MyApp extends Application { 

    List<City> cityList..... 

    //onCreate() 

    public List<City> getList() {} 

    public List<City> setList() 
} 

然後,只需撥打:

MyApp app = getApplication(); //getActivity().getApplication() in the Fragment 
List<City> mylist = app.getList(); 
14

我需要通過參考到一些服務和其他活動

不,你不知道。您需要允許「某些服務和其他活動」才能訪問相同的數據。通過引用傳遞是實現這一目標的一種方式,但它是Android中不常用的方法,就像在Web應用程序中通常不使用的一樣(例如,頁面不會將JavaScript對象傳遞給其他頁面)。

典型的方法是建立一箇中央數據模型,例如管理一堆POJO的單例,由數據庫支持。然後,你在Android中通過標識符,這些標識符通常是簡單的值(整數,字符串等)。

+0

您是否寫過博客文章或上傳了一些代碼來顯示此典型方法? – 2013-05-31 12:47:45

相關問題