1.MainActivity.kt跳轉處理 聲明全局的按鈕對象 private lateinit var button8: Button 實例化按鈕對象 button8 = findViewById(R.id.mButton8) button8.setOnClickListener(this) 添加 ...
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 } } }
以上