zoukankan      html  css  js  c++  java
  • 第一行Kotlin系列(三)Intent 向上一页返回数据onActivityResult的使用

    1.MainActivity.kt跳转处理

    声明全局的按钮对象

    private lateinit var button8: Button

     实例化按钮对象

    button8 = findViewById(R.id.mButton8)
    button8.setOnClickListener(this)

    添加按钮的点击跳转

    R.id.mButton8 -> {
                    val intent = Intent(this, ReturnData().javaClass)
                    startActivityForResult(intent, 1)
                }

    注意:使用的 startActivityForResult 这里和java用法一样,在跳转的同时也可以传递值到下一页,这里为了代码简单就不演示了,具体可以看我上一篇博文

    2.ReturnData.kt向上返回数据处理

    val mBtnReturn = findViewById<Button>(R.id.mBtnReturn)
            mBtnReturn.setOnClickListener {
                returnData()
            }
    

    ReturnData中只有一个按钮,声明实例化按钮以及按钮点击事件,xml布局文件略

    override fun onBackPressed() {
            //super.onBackPressed()
            returnData()
        }
     
        private fun returnData() {
            val intent = Intent()
            intent.putExtra("return", "return kotlin")
            setResult(Activity.RESULT_OK, intent)
            finish()
        }

    这里的跳转向上一页返回数据的逻辑写在returnData()方法中,两个地方调用它,点击按钮和按返回键都可以传值。

    注意:重写onBackPressed()后要注释super方法才有效

    3.返回MainActivity.kt中的重写onActivityResult()方法

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
            super.onActivityResult(requestCode, resultCode, data)
            if (requestCode == 1) {
                if (resultCode == Activity.RESULT_OK) {
                    val returnData = data?.getStringExtra("return")
                    button8.text = returnData
                }
            }
        }

    以上

  • 相关阅读:
    Java面试题:栈和队列的实现
    Java面试题:如何对HashMap按键值排序
    经典的Java基础面试题集锦
    9个Java初始化和回收的面试题
    20个高级Java面试题汇总
    Spring、Spring MVC、MyBatis整合文件配置详解2
    Spring、Spring MVC、MyBatis整合文件配置详解
    Spring:基于注解的Spring MVC
    margin百分比的相对值--宽度!
    jquery.cxSelect插件,城市没单位
  • 原文地址:https://www.cnblogs.com/MyXcc/p/12882265.html
Copyright © 2011-2022 走看看