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
                }
            }
        }

    以上

  • 相关阅读:
    RBAC概念
    Django框架的优缺点
    全文检索whoosh
    软件项目管理|期末复习(九)
    软件项目管理|期末复习(十四)
    HOJX 1003| Mixing Milk
    [转发]ACM刷题网站
    [转发]软件工具|Github上整理的一些工具
    软件项目管理|期末复习(三)
    计算机图形学|两道习题
  • 原文地址:https://www.cnblogs.com/MyXcc/p/12882265.html
Copyright © 2011-2022 走看看