我试图将自定义对象从一个活动传递给另一个活动。这种方式的工作原理是我的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?在 –