导航回以前携带数据的活动

时间:2015-11-07 12:49:24

标签: android android-activity

我有一个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还是有办法回到以前运行的原始主要活动并汇总新数据?

2 个答案:

答案 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);