美文网首页
跳转传值

跳转传值

作者: jancywen | 来源:发表于2023-07-11 13:53 被阅读0次

使用 Intent启动Activity 、启动Service 以及发送广播等场景

显式 Intent

  val intent = Intent(this, SecondActivity::class.java) 
  startActivity(intent)

隐式 Intent

Intent指定 actioncategory由系统去分析找出合适的Activity去启动
只有<action>和<category>中的内容同时匹配Intent 中指定的action和category时,这个Activity 才能响应该Intent 。

  val intent = Intent("com.example.activitytest.ACTION_START")
  intent.addCategory("com.example.activitytest.MY_CATEGORY") 
  startActivity(intent)

传值

传值:intent.putExtra("extra_data", data)
取值:val extraData = intent.getStringExtra("extra_data")

反向传值

1.用startActivityForResult()方法来启动SecondActivitystartActivityForResult()方法接收两个参数:第一个参数还是Intent ;第二个参数是请求码,用于在之后的回调中判断数据的来源。

val intent = Intent(this, SecondActivity::class.java) 
startActivityForResult(intent, 1)

2.在SecondActivity 构建了一个Intent 用于传递数据。把要传递的数据存放在Intent中,然后调用了setResult()方法。这个方法专门用于向上一个Activity返回数据。setResult()方法接收两个参数:第一个参数用于向上一个Activity 返回处理结果,一般只使用RESULT_OKRESULT_CANCELED这两个值;第二个参数则把带有数据的Intent 传递回去。最后调用了finish()方法来销毁当前Activity

val intent = Intent() 
intent.putExtra("data_return", "Hello FirstActivity") 
setResult(RESULT_OK, intent) 
finish()
  1. FirstActivity 中重写onActivityResult()来得到返回的数据
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
   super.onActivityResult(requestCode, resultCode, data) 
   when (requestCode) { 
    1 -> if (resultCode == RESULT_OK) { 
    val returnedData = data?.getStringExtra("data_return") 
    Log.d("FirstActivity", "returned data is $returnedData") 
  } 
 } 
}

相关文章

  • 路由跳转(非命名路由)

    单纯跳转: 路由传值跳转: 路由传值返回跳转:

  • React Router

    安装 嵌套 跳转 跳转传值

  • ionic4-传递参数

    环境 路由传值 方式一(单个值) 路由定义 跳转 或者 接收 方式二(多个值) 跳转 接收 组件间传值 父 -> ...

  • Android常用页面跳转

    前言:记录一下常用的activity跳转、传值,接收值的操作。 1、跳转时清空之前的activity栈,并传值 /...

  • 关于Activity的反向传值问题

    正向传值就不多说了非常简单通过intent进行传值 下面来说反向传值 跳转时使用startActivityForR...

  • React-Native 相关小知识

    1、界面跳转 (1)导航栏传值

  • 2018-09-28

    1.vue 路由跳转传值 -------- 最好用vuex,bus不适合在路由跳转中传值,因为需要初始化组件 2....

  • 代理

    一:代理传值 A跳转到B,若传值,直接属性即可,但是B返回到A若传值该怎么传值呢? 代理: A的声明中 建立协议 ...

  • 微信小程序几种常用的跳转方式并传值

    第一种:通过链接传值(跳转页面传值) 第二种:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 第...

  • query与params的页面传值

    先简单记录页面传值, 还没完全弄懂其中的原理先配置路径跳转 params data传参 params传参 跳转页面...

网友评论

      本文标题:跳转传值

      本文链接:https://www.haomeiwen.com/subject/ajayudtx.html