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