iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
自我挑戰組

Android kotlin &MVVM系列 第 10

Android學習筆記10

今天來用kotlin實作一個BaseActivity,方便以後跳頁傳值使用

   fun start(next: Class<*>, bundle: Bundle?, finished: Boolean) {
    val  intent = Intent(this , next::class.java)
    if(bundle == null)intent.putExtras(Bundle())
    else intent.putExtras(bundle)
    startActivity(intent)
    if (finished) this.finish()
}

也可以用類似java的寫法

lateinit var intent : Intent
   intent.setClass(this, next::class.java)

然後要記得用Bundle的空值設定,否則傳進去是空值的話會報錯
然後因為平常不會每一次都要傳值或是終止activity,所以可以在下面這麼做

  fun start(next: Class<*>){
     this.start(next,null,false)
 }

  fun start(next: Class<*>,bundle: Bundle?){
    this.start(next,bundle,false)
}

  fun start(next: Class<*>, finished: Boolean){
    this.start(next,null,finished)
}

完整程式碼

class BaseActiivity : AppCompatActivity() {

       fun start(next: Class<*>, bundle: Bundle?, finished: Boolean) {
        lateinit var intent : Intent
           intent.setClass(this, next::class.java)
        if(bundle == null)intent.putExtras(Bundle())
        else intent.putExtras(bundle)
        startActivity(intent)
        if (finished) this.finish()
    }

      fun start(next: Class<*>){
         this.start(next,null,false)
     }

      fun start(next: Class<*>,bundle: Bundle?){
        this.start(next,bundle,false)
    }

      fun start(next: Class<*>, finished: Boolean){
        this.start(next,null,finished)
    }

}

上一篇
Android學習筆記09
下一篇
Android學習筆記11
系列文
Android kotlin &MVVM30

尚未有邦友留言

立即登入留言