如何将数据发送回MainActivity

时间:2015-04-25 14:29:20

标签: android android-activity

我有MainActivity,我在其中使用startActivityForResult打开另一个活动,我在其中处理列表中的一些数据。我也可以编辑这些数据并删除。点击手机的后退按钮后,我想将此编辑后的列表发送回主要活动。 我应该在哪里用新列表创建该意图?是否有任何方法可以覆盖后退按钮?

2 个答案:

答案 0 :(得分:3)

在MainActivity中使用startActivityForResult()方法调用AnotherActivity:

Intent i = new Intent(this, AnotherActivity.class);
startActivityForResult(i, 1);

如果需要,可以在AnotherActivity中设置要返回MainActivity的数据。

Intent returnIntent = new Intent();
returnIntent.putExtra("mData", object);
setResult(RESULT_OK, returnIntent);
finish();

在MainActivity中,您必须以这种方式覆盖/实现onActivityResult()方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {
        if(resultCode == RESULT_OK){
            String result=data.getStringExtra("mData");
        }
        if (resultCode == RESULT_CANCELED) {
            // do something if there is no result
        }
    }
}

查看更多内容:

答案 1 :(得分:0)

您可以覆盖onBackPressed并将数据传回原始Activity。但是为了像这样传递它,列表必须实现Parcelable

@Override
public void onBackPressed() {
    super.onBackPressed();
    Intent intent = new Intent();
    Bundle data = new Bundle();
    data.putParcelableArrayList("someKey", listThatImplementsParcelable);
    intent.putExtras(data);
    setResult(RESULT_OK, intent);
    finish();
}