如何将数组从一个活动传递到android中的另一个活动

时间:2010-08-24 14:47:57

标签: android

我想将一个数组从一个Activity传递给另一个Activity,例如我需要将一个数组从image_view Activity传递给Blackimage Activity.Please在Android中解决这个问题。

5 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

如果他们是both in the same application

答案 3 :(得分:0)

除了单例类之外,您可能还希望使用Android SharedPreferences来保存/获取任何数据,以保存设置或防止数据丢失(如果被中断)。

还添加android:configChanges =“keyboardHidden | orientation”>如果您旋转屏幕/滑动打开键盘,进入AndroidManifest将阻止您的应用程序丢失数据。

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 )
    }
}

答案 4 :(得分:0)

将其传递给活动将是最佳的性能选择,就像您使用preferenes或Intent传递数组一样,您必须循环遍历数组以保留它并从Intent或Preferences中恢复它。 p>

使用应用程序将允许您传递数组,但这样做,就像使用单线程序一样会强制您处理它被破坏的实例,就像您不会这样做它即使在两个活动死后也不会被GC应用程序仍然会引用它。