LoginSignup
0
0

More than 1 year has passed since last update.

お問い合わせフォーム メール送信機能の作成

Last updated at Posted at 2021-09-08

はじめに

備忘録として、自作アプリに組み入れたお問い合わせフォーをどの様にして作成したのかを記述

環境

⚫︎OS : macOS Catalina 10.15.7
⚫︎Androidsutdio : 4.2.1
⚫︎Kotlin : 1.5.21

スクリーンショット 2021-09-09 0.34.51.png

画像の送信ボタンを押すと、
スクリーンショット 2021-09-09 0.41.07.png

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画面から遷移しているので、バーに戻るボタンを追記しています。

さいごに

メール画面に遷移するのにあれだけの記述で値を渡しながら遷移できるのは驚き、、

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0