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 } } }
以上
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/4154.html
標籤:Android
