1. 程式人生 > >Blog-04-《一週快速上手Kotlin For Android》-之Activity詳細用法

Blog-04-《一週快速上手Kotlin For Android》-之Activity詳細用法

—《一週快速上手Kotlin For Android》簡介
目前Kotlin已正式成為Android的官方語言,作為Android開發者來說,學習和了解Kotlin也是屬於理所當然的事情,興許你覺得Java對於你來說才是真正的開發”利器”,使用Java你能發揮更高的效率,當然,如果如此你還是可以繼續使用Java來開發Android。但對於Kotlin來說,開發Android會變得更簡單一些,因為Kotlin其實就是Android開發中的語法糖,採用更簡短的程式碼,描述更多的邏輯而已。開發語言本身就沒有對錯和最優,每個開發語言被開發出來的時代背景不同,需要解決的主要問題也不同。選擇適合你自己的就可以。
Kotlin For Android 在Activity中的詳細用法
1、在Kotlin中建立Activity。在Java中需要extends Activity,Kotlin中採用” : “ 來代替extends。

class KotlinActivity : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin_main)
}

2、在Kotlin中重寫Activity的生命週期函式。

class KotlinActivity : AppCompatActivity(){

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_kotlin_main)
}

override fun onStart() {
    super.onStart()
}

override fun onResume() {
    super.onResume()
}

override fun onPause() {
    super.onPause()
}

override fun onStop() {
    super.onStop()
}

override fun onDestroy() {
    super.onDestroy()
}
}

3、在Kotlin中實現Activity跳轉。
其中KotlinActivity2為新的Activity。
startActivity(Intent([email protected], KotlinActivity2::class.java))
4、在Kotlin中實現Activity Intent傳值。
(1)負責傳值的Activity KotlinActivity:

var intent = Intent(KotlinActivity@this, KotlinActivity2::class.java)
var bundle = Bundle()
bundle.putString("name"
, "ABC") bundle.putInt("age", 123) intent.putExtras(bundle) startActivity(intent)

(2)負責接收值的Activity KotlinActivity2:

var bundle = this.intent.extras
var name = bundle.get("name").toString()
var age = bundle.get("age").toString()

5、在Kotlin中實現startActivityForResult的用法
(1)從KotlinActivity啟動KotlinActivity2,傳參name、age。採用startActivityForResult的方式啟動。並且重寫onActivityResult函式,待從KotlinActivity2中返回值。

class KotlinActivity : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin_main)

        var btn_start = findViewById<Button>(R.id.btn_start)

        btn_start.setOnClickListener {
            var intent = Intent([email protected], KotlinActivity2::class.java)
            var bundle = Bundle()
            bundle.putString("name", "ABC")
            bundle.putInt("age", 123)
            intent.putExtras(bundle)
            startActivityForResult(intent, 0)
        }

    }

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if(requestCode == 0){
            var name = data?.getStringExtra("name")
            Log.d("ACETEST", "name: " + name)
        }
    }
 }

(2)在KotlinActivity2中接收name、age的值,並且把name值返回給KotlinActivity。

class KotlinActivity2 : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_kotlin_main_2)

        var bundle = this.intent.extras
        var name = bundle.get("name").toString()
        var age = bundle.get("age").toString()

        var btn_start = findViewById<Button>(R.id.btn_start)

        btn_start.setOnClickListener {
            var intent = Intent()
            intent.putExtra("name", name)
            setResult(Activity.RESULT_OK, intent)
            finish()
        }

    }
 }

總結:以上介紹了在Kotlin中Activity的幾種常用方式,掌握了以上幾點,那麼你在專案中通過Kotlin中實現Activity就非常簡單了。請一定要記住,Kotlin本身僅僅是一門語言,對於Android來說掌握起來是非常簡單了,無非就是語法上的不同。Kotlin有更多高階的用法,但只要你掌握了基本的用法,其實在專案中使用就很足夠了,倘若你有興趣可以多去了解Kotlin中更加多的語言特性。

歡迎關注我的公眾號,分享更多的原創文章,關於技術、關於感悟。
這裡寫圖片描述