2015-05-12 112 views
0

我正在学习android,并且我不太了解结构。使用'core'创建Android应用程序

我不得不使用HTTP从服务器加载大量数据,但我需要将数据传递给其他活动。我可以用Intent做到这一点,但我有大量的数据对象,似乎应该有一种方法来创建一个“主”类,其中包含所有其他类,新活动将能够与“主'类,而不是将数据从一个活动传递到另一个活动,或者这是做这件事的正确方法吗?谢谢。

基本上就是我想要做的是这样的:

主类

class Core 
    { 
     public api; 
     public acconts; 
    } 

主要活动初始化核心类和调用数据加载功能。然后开始第二项活动。

第二项活动可以直接访问Core.api和Core.accounts。

我该如何做到这一点?

回答

1

您可以创建类似,在您的项目类:

public class StorageManager 
{ 
    private static StorageManager sInstance; 
    private String mSomeData; 

    public static StorageManager getInstance() 
    { 
     if (sInstance == null) { 
      sInstance = new StorageManager(); 
     } 

     return sInstance; 
    } 

    private StorageManager() 
    { 

    } 

    public String getData() 
    { 
     return mSomeData; 
    } 

    public void setData(String data) 
    { 
     mSomeData = data; 
    } 
} 

“mSomeData”将包含你想活动之间传递数据。您也可以将字符串类型更改为其他类型或添加更多数据字段。然后,在任何活动中,你可以这样做:

StorageManager.getInstance().setData("data1"); 

String data = StorageManager.getInstance().getData(); 
+0

什么是有一个单独的类有什么好处?难道你不能只说'静态mSomeData'并调用'data = StorageManager.mSomeData'? – natario

+0

你可以但singleton类更清洁,你可以把它放在一个单独的.java文件中,这样很明显这是一个独立的功能,不与任何活动关联,但任何活动都可以使用它。在将来,您还可以轻松地扩展此功能,例如添加更多方法,例如将数据保存到SD卡或从SD卡读取数据。为了可维护性和可扩展性的原因,我会使用这种模式。如果你开始在随机的地方向你的代码添加静态变量,你的代码将变得比理解所需的更难。 –

+0

如果需要一个静态变量,那么我只是将它隐藏在这样的单例之后,并将与它相关的功能放在一个单独的文件中。其余的代码不应该直接与静态变量交互。在我看来,它使代码更难理解,并且是错误的根源。 –

相关问题