1.MainActivity.kt跳轉處理java
聲明全局的按鈕對象ide
private lateinit var button8: Button
實例化按鈕對象佈局
button8 = findViewById(R.id.mButton8) button8.setOnClickListener(this)
添加按鈕的點擊跳轉this
R.id.mButton8 -> { val intent = Intent(this, ReturnData().javaClass) startActivityForResult(intent, 1) }
注意:使用的 startActivityForResult 這裏和java用法同樣,在跳轉的同時也能夠傳遞值到下一頁,這裏爲了代碼簡單就不演示了,具體能夠看我上一篇博文spa
2.ReturnData.kt向上返回數據處理code
val mBtnReturn = findViewById<Button>(R.id.mBtnReturn) mBtnReturn.setOnClickListener { returnData() }
ReturnData中只有一個按鈕,聲明實例化按鈕以及按鈕點擊事件,xml佈局文件略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方法纔有效blog
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 } } }
以上