如何将数组从一个活动传递给另一个活动android
我想将一个数组从一个Activity传递到另一个Activity,例如我需要将一个数组从Image_view Activity传递给Blackimage Activity。请给出解决此问题的方法在Android中。如何将数组从一个活动传递给另一个活动android
在这里使用Singleton可能是一个糟糕的主意,尤其是考虑到Android的kill-happy生命周期以及如果你做错了leaking Context的可能性很高。 Android在Intents上有一个非常简单而强大的内置消息传递功能 - 使用它!您应该使用内置的putExtra方法传递阵列作为额外的Intent,或者使用内置的putExtra方法来获取各种Java内置数组,或者确保您的数组由Serializable对象组成,并将其传递给Intent's putExtra method,该对象接受任何可序列化的对象。然后你可以简单地在第二个Activity的onCreate()中获得额外的Intent,不需要混乱的单例。
除了单例类,您可能还想看看如何使用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)
}
}
通过活动传递这将是表现最好的选择,因为如果你使用preferenes或意图通过阵列上,你将不得不环路在阵列上坚持它并从Intent或Preferences中恢复它。
使用应用程序将允许您传递数组,但这样做,就像使用singletone一样,将强制您处理它的实例被销毁,就好像您不会这样做,即使两次活动死亡后也不会被GCed因为应用程序仍然会保留对它的引用。
嗨,朋友可以告诉我们,并为此问题示例代码 – sivaraj 2010-08-24 15:12:28
请按照链接,那里有足够的代码。 – fredley 2010-08-24 15:22:01