• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

卢晓春的博客

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

安卓笔记4——Result API 在两个Activity之间传递数据 kotlin版本

第一个Activity

   // 接收第二个Activity返回的回调
   private val requestDataLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
       if (result.resultCode == RESULT_OK) {
           val data = result.data?.getStringExtra("data")
           Toast.makeText(this, data, Toast.LENGTH_LONG).show()
       }
   }
   
   override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       val binding = FirstLayoutBinding.inflate(layoutInflater)
       val button1 = binding.button1
       setContentView(binding.root)

       button1.setOnClickListener{
           // 显示调用
           val intent = Intent(this, SecondActivity::class.java)

           // 传值
           val data = "这就是街舞"
           intent.putExtra("dd", data)  // 填入数据
           requestDataLauncher.launch(intent)
       }
   }

第二个Activity

 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding = SecondLayoutBinding.inflate(layoutInflater)
        setContentView(binding.root)

        // intent.getStringExtra取值
        Toast.makeText(this ,intent.getStringExtra("dd"), Toast.LENGTH_SHORT).show()

        // 返回值给上一个Activity
        val intent = Intent()
        intent.putExtra("data", "data from SecondActivity")
        setResult(RESULT_OK, intent)

        binding.button2.setOnClickListener{
            finish()
        }
    }

其它

无法直接传递对象

posted on 2025-01-07 23:03  卢晓春  阅读(50)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3