我試圖將自定義對象從一個活動傳遞給另一個活動。這種方式的工作原理是我的MainActivity
中有一個ListView
,當應用第一次啓動時它是空的。有一個按鈕導致我的RecordActivity
。用戶填寫完數據後,他們按下「完成」按鈕,將對象傳遞迴我的MainActivity
,並將其放入List
。這工作正常,但是當我想添加第二個對象時,它只是替換第一個對象,而不是將其添加到列表中。我假設這是因爲我每次撥打startActivity(intent)
時都會重新創建我的MainActivity
。我需要保存我的MainActivity
的狀態,並在搜索後找不到解決我的問題的線程。Android保持活動狀態
這裏是我的RecordActivity
代碼傳遞對象:
Intent intent = new Intent(getBaseContext(), MainActivity.class);
intent.putExtra("newRecord", EXTRA_RECORD);
startActivity(intent);
,這裏是我的代碼以檢索這個我MainActivity
:
Bundle extras = getIntent().getExtras();
if(extras != null){
Record addedRecord = extras.getParcelable("newRecord");
adapter.add(addedRecord);
}
與onNewIntent方法:
@Override
public void onNewIntent(Intent intent){
Bundle extras = getIntent().getExtras();
if(extras != null){
Record addedRecord = extras.getParcelable("newRecord");
recordArrayList.add(addedRecord);
adapter.add(addedRecord);
}
}
adapter
是我的ArrayAdapter
th在填充ListView
編輯:
我要指出,我希望這個名單是持久的,因此,每一個應用程序打開的列表時已經存在,從最後一次。我不知道這是否影響我的問題,因爲我將需要使用SharedPreference
來存儲我的列表
解決方案
在onNewintent
方法:
Bundle extras = getIntent().getExtras();
應該是:
Bundle extras = intent.getExtras();
您是否嘗試在該活動的清單中添加'android:launchMode =「singleTop」'? –
您也可以將這些值添加到爲應用程序的實況保持活動的應用程序類。 [Here](http://developer.android.com/reference/android/app/Application.html)是文檔。 – dsum27
@MysticMagic我沒有,我添加到我的MainActivity?在 –