はじめに
何かしらの機能で必ず使用するExtensionですが、毎度実装している便利なExtensionを備忘録的に残しておこうと思います。
その1
fun Context.shareMessage(text: String, subject: String = ""): Boolean {
val intent = Intent()
intent.type = "text/plain"
intent.putExtra(EXTRA_SUBJECT, subject)
intent.putExtra(EXTRA_TEXT, text)
try {
startActivity(createChooser(intent, null))
return true
} catch (e: ActivityNotFoundException) {
return false
}
}
上記は特定のメッセージなどを他サービスを通して送付したい場合などに使用する拡張関数です。
こちらはあくまで一例であり、メーラーを立ち上げたり、マップを表示したりなど、やりたいことに合わせて拡張関数として切り出すと良いかと思います。
その2
fun Context.openPhone(number: String): Boolean {
try {
val intent = Intent(ACTION_CALL, Uri.parse("tel:$number"))
startActivity(intent)
return true
} catch (e: Exception) {
return false
}
}
上記は指定した電話番号をもとに電話アプリを立ち上げるための拡張関数です。
電話アプリを正しく立ち上げる為には、番号の前に tel: を付与する必要があります。
その3
val EditText.value
get() = text?.toString().orEmpty()
EditTextから文字列を取得する際、textがEditableなので少々手間がかかったりしますよね。
微々たるものなのですが、こういった拡張関数を作っておくと実装が少しだけ楽になります。
さいごに
第三弾でしたが、本当にたくさんあるので、今後は違う記事を書きつつ合間で拡張関数の続編もまとめていこうと思います。