如何将数组列表从一个活动传递到另一个活动而不启动它

时间:2011-09-06 16:09:56

标签: android android-activity arraylist

我有一个包含数组列表的活动

ArrayList<String> array = new ArrayList<String>(); 

我希望在单击“保存”按钮时将此数组列表传递给另一个活动,但我不希望该活动启动...

通常此代码有助于开始活动

 public void onClick(View v) {
 if (v==Save)
            {
                Bundle bundle = new Bundle();
                bundle.putStringArrayList("DONE", activeURL);
                Intent myIntent = new Intent(Reader2.this, Aggregator.class);
                myIntent.putExtra("reader2", activeURL);
                startActivity(intent);

                }
}

但我只想传递数组并启动另一个活动。 你能帮我么 ? 提前谢谢。

4 个答案:

答案 0 :(得分:8)

您可以将ArrayList声明为静态类似

public static ArrayList<String> array = new ArrayList<String>(); 

通过这样做,您可以通过

从任何地方访问您的ArrayList
activity_name.array;

其中activity_name是您声明静态ArrayList

的活动或类

答案 1 :(得分:1)

根据您提及“保存”按钮的事实,我认为您希望将此数据保存到SharedPreferencesSQLiteDatabase

我不确定将某些数据“保存”到另一个Activity而不是启动它会是什么意思。

如果您的数据处于持久状态,您应该能够从其他Activity的任何一个访问它,这听起来就像您所追求的那样。

答案 2 :(得分:1)

您可以将意图传递给已经在运行的活动。请按照此http://www.helloandroid.com/tutorials/communicating-between-running-activities进行操作 在意图中你可以像这样添加额外的

Intent contactsIntent = new Intent(getApplicationContext(),
                ContactCards.class);
        contactsIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
                appWidgetId);
//Bundle containing the serialized list
        Bundle extraContacts = new Bundle();
//Putting the array list templist is the array list here

        extraContacts.putSerializable("CONTACT_KEY", tempList);
        extraContacts.putString("CALL_STRING", CALL_STRING);
        contactsIntent.putExtras(extraContacts);
        contactsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(contactsIntent);

答案 3 :(得分:1)

使用第一项活动

    Intent i=new Intent(ArraylistpassActivity.this,second.class);
   i.putStringArrayListExtra("key",arl);startActivity(i);

第二项活动:

arl=bundle.getStringArrayList("key");