Activity系列:startActivityForResult的用法

Posted zhangjin1120

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activity系列:startActivityForResult的用法相关的知识,希望对你有一定的参考价值。

模拟一个使用场景,从MainActivity跳转到ChangeNameActivity,修改客户姓名后,把修改的结果返回给MainActivity。
在这里插入图片描述

MainActivity代码

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "xx";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void changeName(View view) {
        Intent intent = new Intent(this, ChangeNameActivity.class);
        startActivityForResult(intent,99);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.i(TAG, "onActivityResult: " + requestCode + " " + resultCode + " " + data.getStringExtra("hh"));
    }
}

ChangeNameActivity代码

public class ChangeNameActivity extends AppCompatActivity {

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

    public void changeSuccess(View view) {

        Intent intent = new Intent();
        intent.putExtra("hh", "刘德华");
        setResult(RESULT_OK,intent);

        finish(); //必须调用finish(),并且setResult()必须在finish之前
    }
}

以上是关于Activity系列:startActivityForResult的用法的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin基础从入门到进阶系列讲解(入门篇)Activity的使用

Android Studio系列-Activity单元测试

Activity系列讲解---返回结果的处理

Kotlin基础从入门到进阶系列讲解(入门篇)Activity的简介和使用

Android之Activity系列总结--任务和返回栈

Android总结篇系列:Activity启动模式(lauchMode)