エンジニア男

勉強したことの忘備録としてつらつら書いていきます。

【Android】Kotlinで調べたこと

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"
}
}