2010-08-24 150 views

回答

3

阅读制作singleton类,然后您可以在一个Activity中调用singleton.setArray(myArray),然后在下一个中调用singleton.setArray()。

+0

嗨,朋友可以告诉我们,并为此问题示例代码 – sivaraj 2010-08-24 15:12:28

+0

请按照链接,那里有足够的代码。 – fredley 2010-08-24 15:22:01

5

在这里使用Singleton可能是一个糟糕的主意,尤其是考虑到Android的kill-happy生命周期以及如果你做错了leaking Context的可能性很高。 Android在Intents上有一个非常简单而强大的内置消息传递功能 - 使用它!您应该使用内置的putExtra方法传递阵列作为额外的Intent,或者使用内置的putExtra方法来获取各种Java内置数组,或者确保您的数组由Serializable对象组成,并将其传递给Intent's putExtra method,该对象接受任何可序列化的对象。然后你可以简单地在第二个Activity的onCreate()中获得额外的Intent,不需要混乱的单例。

0

除了单例类,您可能还想看看如何使用Android SharedPreferences来保存/获取任何数据,以保存设置或防止数据在被中断时丢失。

在AndroidManifest中添加android:configChanges =“keyboardHidden | orientation”>将防止您的应用在旋转屏幕/滑动打开的键盘时丢失数据。

SharedPref例

String m_myData[]; 
Boolean m_myBoolData[]; 

public static void saveSettings() 
{ 
    SharedPreferences.Editor editor = m_SharedPreferences.edit(); 
    for(int ix = 0; ix < m_myData[].length; ix++ 
    { 
     editor.putString("myKey" + ix, m_myData[ix]); 
     editor.putBoolean("myKey" + ix, m_myBoolData[ix]) 
    } 
} 

public static void getSettings() 
{ 

    for(int ix = 0; ix < m_myData[].length; ix++ 
    { 
     m_myData[ix] = m_SharedPreferences.getString("myKey" + ix, false); 
     m_myBoolData[ix] = m_SharedPreferences.getBoolean("myKey" + ix, false) 
    } 
} 
0

通过活动传递这将是表现最好的选择,因为如果你使用preferenes或意图通过阵列上,你将不得不环路在阵列上坚持它并从Intent或Preferences中恢复它。

使用应用程序将允许您传递数组,但这样做,就像使用singletone一样,将强制您处理它的实例被销毁,就好像您不会这样做,即使两次活动死亡后也不会被GCed因为应用程序仍然会保留对它的引用。

相关问题