我有一个MainActivity,它有一个存储我的对象的列表:
private List<House> houses;
当用户点击ADD按钮时,它会调用另一个活动:
addButton.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, HouseDetails.class);
startActivity(intent);
}
};
此新活动提供了一个用户填充新对象数据的屏幕。在这里,他必须选择:取消(返回并且不创建任何内容)或接受(返回新创建的对象)。
如何使用新创建的对象返回MainActivity?我应该再次启动MainActicity还是有办法回到以前运行的原始主要活动并汇总新数据?
答案 0 :(得分:2)
//Global variable
private string request_code = 1000;
并通过调用MainActivity
开始新活动Intent intent = new Intent(MainActivity.this, HouseDetails.class);
startActivityForResult(intent , request_code );
并覆盖方法onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == request_code){
if(resultCode == RESULT_OK){
//put your stuff here
}else if(resultCode == RESULT_CANCEL){
//put your stuff here
}
}
}
在HouseDetails活动覆盖方法完成活动
@Override
public void finish() {
Intent data = new Intent();
Bundle extra = new Bundle();
//put your data in bundle
data.putExtras(extra);
if(cancel){
setResult(RESULT_CANCEL , data);
}else{
setResult(RESULT_OK,data);
}
super.finish();
}
答案 1 :(得分:1)
您的列表应该是静态的,而不是您可以从第二个活动中添加新对象e。克。
MainActivity.houses.add(House house);