日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Kotlin?startActivity跳轉Activity實現流程詳解_Android

作者:go2coding ? 更新時間: 2023-01-01 編程語言

從一個Activity跳到另一個Activity 在編寫安卓代碼是最常見的事情了。我們不可能在一個頁面中,把所有的事情都做完。

kotlin中跳轉的程序也比較簡單,跟java差不多。如果熟悉java代碼的話,只需要把代碼改變過來而已。

帶參數的調整

從一個Activity跳到另一個Activity 中,如同調用函數一樣,可以把數據傳遞給另外的Activity中,Activity在接受到這個數據后,可以根據數據的情況進行相應的處理操作。

對于跳轉Activityandroid 中使用的是 startActivity ,在startActivity 的時候可以傳遞進去一個Intent,這個Intent可以把要傳遞的Activity和參數都塞進去,使用的方法如下:

            val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            intent.putExtra("request_time",  sdf.format(Date()))
            startActivity(intent)

這里我們從MainActivity,跳到 MainActivity2中去,我們傳遞的字段為request_time,在intent中用putExtra放入。

MainActivity2 中直接用intentgetStringExtra 來取得相關的字段。

tv_activity.setText(intent.getStringExtra("request_time"))

自定義數據傳輸

大多數,我們不僅僅只是想傳遞一個 基礎類型的數據,對于自定義的類或者數據也是可以做得到的,這點Kotlin 看起來會簡單多了,特別是創建Parcelable

創建一個自定義數據類型:

@Parcelize
data class MessageInfo(val content:String,val sent_text:String):Parcelable
{
}

@Parcelize注解 幫我們把Parcelize的接口都實現了。

傳遞數據類型,啟動相關的頁面:

        btn_activity1.setOnClickListener{
            val sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
            var message:MessageInfo = MessageInfo("hello MainActivity2",sdf.format(Date()))
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            intent.putParcelableArrayListExtra("request", arrayListOf(message))
            startActivity(intent)
        }

使用putParcelableArrayListExtra 把相關的數據放入。接收端同樣的來接收數據類型:

var messages = intent.getParcelableArrayListExtra<MessageInfo>("request")

startActivityForResult

在跳轉后的頁面,如果在跳轉回去的時候,也可以設置相應的回調參數,和回調狀態值。在startActivity 的時候,換為startActivityForResult,重載onActivityResult 的方法,就可以得到返回的數值。

        btn_activity2.setOnClickListener {
            var intent:Intent = Intent(applicationContext,MainActivity2::class.java)
            startActivityForResult(intent,9)
        }

重載onActivityResult方法,等待返回結果:

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
    }
}

MainActivity2頁面中,用Intent的方式來跳回原來的頁面。

        btn_activity20.setOnClickListener {
            var intent: Intent = Intent()
            setResult(0,intent)
            this.finish()
        }

小結

Activityandroid 四大組件之一,后面其他的組件還會一一的進行介紹,Activity 其實有很多東西可以學習,特別是看看他的源代碼,會發現很多可以用的技巧,但是還是得先學會怎么使用Activity,這個才是基礎,這里僅僅介紹了跳轉的用法,其他的后面還會進行介紹。

原文鏈接:https://blog.csdn.net/weixin_40425640/article/details/127981019

欄目分類
最近更新