はじめに
備忘録として、自作アプリに組み入れたお問い合わせフォーをどの様にして作成したのかを記述
環境
⚫︎OS : macOS Catalina 10.15.7
⚫︎Androidsutdio : 4.2.1
⚫︎Kotlin : 1.5.21
gmailの方でタイトルと本文を受け継ぐ処理をしていきます
※本来、メールの送信先のアドレスも受け渡しますが、個人情報保護の為画面のTo項目からは消してます。
実装
class OptionsInquiryActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_options_inquiry)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
}
fun onInquiryClickButton(view: View){
//件名を取得
val etSubject = findViewById<EditText>(R.id.etSubject)
//入力された件名を取得
val subject = etSubject.text.toString()
//メール本文を取得
val etComment = findViewById<EditText>(R.id.etComment)
//入力された件名を取得
val comment = etComment.text.toString()
val mailerIntent = Intent()
mailerIntent.action = Intent.ACTION_SEND
mailerIntent.type = "message/rfc822"
mailerIntent.putExtra(Intent.EXTRA_EMAIL , arrayOf(送信先のメールアドレスを記入))
mailerIntent.putExtra(Intent.EXTRA_SUBJECT , subject)
mailerIntent.putExtra(Intent.EXTRA_TEXT , comment)
startActivity(mailerIntent)
finish()
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
//戻り値用の変数を初期値trueで用意
var returnVal = true
//選択されたメニューが[戻る]の場合、アクティビティ終了
if(item.itemId==android.R.id.home){
finish()
}
//それ以外
else{
//親クラスの同盟メソッドを呼び出し、その戻り値をreturnValとする
returnVal = super.onOptionsItemSelected(item)
}
return returnVal
}
}
Main画面から遷移しているので、バーに戻るボタンを追記しています。
さいごに
メール画面に遷移するのにあれだけの記述で値を渡しながら遷移できるのは驚き、、