我有一个包含数组列表的活动
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);
}
}
但我只想传递数组并启动另一个活动。 你能帮我么 ? 提前谢谢。
答案 0 :(得分:8)
您可以将ArrayList声明为静态类似
public static ArrayList<String> array = new ArrayList<String>();
通过这样做,您可以通过
从任何地方访问您的ArrayListactivity_name.array;
其中activity_name是您声明静态ArrayList
的活动或类答案 1 :(得分:1)
根据您提及“保存”按钮的事实,我认为您希望将此数据保存到SharedPreferences
或SQLiteDatabase
。
我不确定将某些数据“保存”到另一个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");