Kotlinで匿名クラスを使う方法

KotlinでAndroidをしたいと思ってとりあえず手探り状態なのですが、
匿名クラスの宣言方法がよくわからなかったかったので、メモ。

class MyActivity() : Activity() {
  override fun onCreate(savedInstanceState : Bundle?) {
    super.onCreate(savedInstanceState)
    //setContentView(R.layout.main)
    val packageManager = getPackageManager()
    val info = packageManager?.getPackageInfo(getPackageName(), 0)
    val title = "${getString(R.string.app_name)} ${info?.versionName}"
    AlertDialog.Builder(this).setIcon(R.drawable.icon)
      ?.setTitle(title)
      ?.setPositiveButton(R.string.ok, object : DialogInterface.OnClickListener {
        override public fun onClick(dialog : DialogInterface?, which : Int) {
          Toast.makeText(getApplicationContext(), R.string.ok, Toast.LENGTH_SHORT)?.show()
          finish()
        }
      })
      ?.setCancelable(true)
      ?.setOnCancelListener(object : DialogInterface.OnCancelListener{
        override fun onCancel(dialog : DialogInterface?){
          finish()
        }
      })
      ?.create()
      ?.show()
  }
}

object : DialogInterface.OnClickListener {…}という形なんすねー。
そういえばこれはKotlin Advent Calendarで見たわーと思ったら、ちゃんと匿名クラスを書く方法が書いてありますね…。

19日目:キーワード object の威力

今のところ、Kotlinぽい(?)感じの書き方がまだわかってないんですが、引き続きやってみようと思います。


タグ Android, Kotlin | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です