Kotlinを書きながら調べたことのメモ。
・@Parcelize
ParcelableはActivity間のデータ通信の際、一時的にデータを保存したい場合に利用する。
app/build.gradle 下記の設定を追加
apply plugin: 'kotlin-android-extensions'
androidExtensions {
experimental = true
}
android {
~~~
}
@Parcelizeを付与するクラスには、Parcelableを継承する必要がある。
@Parcelize
data class User(
val uid: String,
val userName: String
): Parcelable
Modelの受け渡し
// データを渡す
val user = User("1", "sato takeru")
val intent = Intent(this, NextActivity::class.java)
intent.putExtra("key", user)
startActivity()
finish()
====================
// データを受け取る
val toUser = intent.getParcelableExtra<User>("key")
・lateinit
遅延評価 = プロパティの初期化を遅らせることが出来る
■ルール
・valは使えない
・プリミティブ型には使えない (例:int, double)
・nullableは使えない
class MainActivity: AppCompatActivity() {
private lateinit var database: DatabaseReference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
database = Firebase.database.reference
}
}
・companion object
companion object とは、クラス内に作成されるSingletonのこと。
■ルール
・1クラスにつき、1companion objectが宣言可能
class Person {
companion object {
val name = "yamada takayuki"
}
}