2013-02-19 55 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

相关问题