获取Activity返回值

在Android开发中,你可以通过在Fragment中使用startActivityForResultonActivityResult方法来获取从Activity返回的结果。以下是一个简要的步骤说明和代码示例:

步骤:

  1. 启动Activity并请求返回值: 使用startActivityForResult方法启动目标Activity,并请求返回值。

  2. 在Fragment中重写onActivityResult方法: 当目标Activity返回结果时,onActivityResult方法会被调用,你可以在该方法中处理返回的结果。

示例代码:

Fragment代码:
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

public class MyFragment extends Fragment {

    private static final int REQUEST_CODE = 1;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 启动目标Activity并请求返回值
        Intent intent = new Intent(getActivity(), TargetActivity.class);
        startActivityForResult(intent, REQUEST_CODE);
    }

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

        if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
            if (data != null) {
                String result = data.getStringExtra("key");
                // 处理返回的结果
            }
        }
    }
}

TargetActivity代码:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;

public class TargetActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_target);

        // 处理点击事件或其他操作以返回结果
        findViewById(R.id.button_return_result).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent resultIntent = new Intent();
                resultIntent.putExtra("key", "result_value");
                setResult(Activity.RESULT_OK, resultIntent);
                finish();
            }
        });
    }
}

注意事项:

  • 确保在启动目标Activity时传递正确的请求码(例如上面的REQUEST_CODE)。
  • 在目标Activity中,确保调用setResult并传递结果Intent。
  • 在Fragment的onActivityResult方法中处理返回的结果。

这样,你就可以在Fragment中获取从Activity返回的值了。如果你使用的是FragmentResultAPI(API Level 30引入),可以使用新的方式来实现更简洁的代码,但上述方法在所有支持的API Level中都适用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值