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中更加多的語言特性。
歡迎關注我的公眾號,分享更多的原創文章,關於技術、關於感悟。