以下是一个简单的示例,演示如何使用'registerForActivityResult'在两个活动之间进行页面跳转:

在第一个活动(MainActivity)中:

// 导入需要的类
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    // 创建一个 ActivityResultLauncher 对象
    private lateinit var secondActivityLauncher: ActivityResultLauncher<Intent>

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 初始化 ActivityResultLauncher 对象
        secondActivityLauncher = registerForActivityResult(
            ActivityResultContracts.StartActivityForResult()) { result ->
            // 在此处处理第二个活动返回的结果
            if (result.resultCode == RESULT_OK) {
                // 处理成功
            } else {
                // 处理失败
            }
        }

        // 设置按钮点击事件
        findViewById<Button>(R.id.button).setOnClickListener {
            // 创建一个 Intent 对象,用于启动第二个活动
            val intent = Intent(this, SecondActivity::class.java)
            // 启动第二个活动,并等待结果
            secondActivityLauncher.launch(intent)
        }
    }
}

在第二个活动(SecondActivity)中:

// 导入需要的类
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class SecondActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)

        // 在此处处理第二个活动的逻辑
        // 如果需要返回结果,则在返回时设置 setResult()
        setResult(RESULT_OK)
        // 关闭当前活动
        finish()
    }
}

这是一个非常简单的示例,但可以为您提供一个基本的理解,如何使用'registerForActivityResult'在两个活动之间进行页面跳转。请注意,您可以使用不同的合同来处理不同类型的结果,例如'ActivityResultContracts.TakePicture()'用于拍照结果,或'ActivityResultContracts.GetContent()'用于获取内容结果。

Android 页面跳转:使用 registerForActivityResult 实现活动间通信

原文地址: https://www.cveoy.top/t/topic/nvv5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录