首页 > 解决方案 > 使用完成功能将数据从活动发送回片段

问题描述

我曾尝试从从片段实例化的 Activity 发送数据。将数据从 Activity 发送回 Fragment。我尝试了以下代码

分段:

Instantiated the Fragment
    Intent intent = new Intent(Fragement.this,Activity);
    startActivity(intent);

活动:

Intent intent = new Intent(Activitiy.this, Fragment);
                intent.putExtra("Sent", "Something");
                setResult(RESULT_OK, intent);
                finish();

将结果发送到片​​段

In Fragment trying to implement onActivityResult but not even able to define the method.

标签: androidandroid-fragmentsandroid-intent

解决方案


startActivityForResult使用如下方式调用您的活动

Intent intent = new Intent(Fragement.this, Activity);
startActivityForResult(intent, 1);

onActivityResult在您的片段中实现结果

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK && requestCode == 1) {
        // here you can retrieve your bundle data.
        String yourdata = data.getStringExtra("Sent");
    }
}

并在您activity喜欢以下。

Intent intent = new Intent();
resultIntent.putExtra("Sent", "String data"); 
setResult(RESULT_OK, intent );
finish();

很重要

你必须override onActivityResult在你的活动中(在其中加载片段)

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
       super.onActivityResult(requestCode, resultCode, data);
    }

有关完整示例,请参阅此


推荐阅读