Advertisement
fannyxmikasa

MainActivity.kt

Jan 29th, 2021
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 3.72 KB | None | 0 0
  1. package com.example.myapplication
  2.  
  3. import android.content.Context
  4. import android.content.Intent
  5. import android.os.Bundle
  6. import android.text.Editable
  7. import android.text.TextUtils
  8. import android.text.TextWatcher
  9. import android.util.Patterns
  10. import android.view.KeyEvent
  11. import android.view.inputmethod.InputMethodManager
  12. import android.widget.Button
  13. import android.widget.EditText
  14. import android.widget.LinearLayout
  15. import androidx.appcompat.app.AlertDialog
  16. import androidx.appcompat.app.AppCompatActivity
  17.  
  18.  
  19. class MainActivity : AppCompatActivity() {
  20.     override fun onCreate(savedInstanceState: Bundle?) {
  21.         super.onCreate(savedInstanceState)
  22.         setContentView(R.layout.activity_main)
  23.  
  24.         val isKeyPressed = KeyEvent.KEYCODE_BACK
  25.  
  26.  
  27.         //hide keyboard when touch outside
  28.         val focus = findViewById<LinearLayout>(R.id.linearLayout2)
  29.         focus.setOnClickListener { v ->
  30.             val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
  31.             imm?.hideSoftInputFromWindow(v.windowToken, 0)
  32.         }
  33.  
  34.         fun isValidEmail(email: String): Boolean {
  35.             return !TextUtils.isEmpty(email) && Patterns.EMAIL_ADDRESS.matcher(email).matches()
  36.         }
  37.  
  38.         val button = findViewById<Button>(R.id.btnSend)
  39.         val em = findViewById<EditText>(R.id.email)
  40.         val sub = findViewById<EditText>(R.id.subj)
  41.         val msg = findViewById<EditText>(R.id.message)
  42.  
  43.  
  44.         //check form fields are empty
  45.         button.setEnabled(false)
  46.         val editTexts = listOf(em, sub, msg)
  47.         for (editText in editTexts) {
  48.             editText.addTextChangedListener(object : TextWatcher {
  49.                 override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
  50.                     var et1 = em.text.toString().trim()
  51.                     var et2 = sub.text.toString().trim()
  52.                     var et3 = msg.text.toString().trim()
  53.  
  54.                     button.isEnabled = et1.isNotEmpty()
  55.                             && isValidEmail(em.text.toString())
  56.                             && et2.isNotEmpty()
  57.                             && et3.isNotEmpty()
  58.                     if (!isValidEmail(em.text.toString()) && et1.isNotEmpty())
  59.                         em.error = "Email not valid!"
  60.                 }
  61.  
  62.                 override fun beforeTextChanged(
  63.                         s: CharSequence, start: Int, count: Int, after: Int) {
  64.                 }
  65.  
  66.                 override fun afterTextChanged(
  67.                         s: Editable) {
  68.                 }
  69.             })
  70.         }
  71.  
  72.  
  73.         //add event
  74.         button.setOnClickListener {
  75.             val text = findViewById<EditText>(R.id.email)
  76.             val email = text.text.toString()
  77.  
  78.             val builder = AlertDialog.Builder(this)
  79.             //set title for alert dialog
  80.             builder.setTitle("Send Email")
  81.             //set message for alert dialog
  82.             builder.setMessage("Do you really want to send this email to $email")
  83.             builder.setIcon(android.R.drawable.ic_dialog_alert)
  84.             //performing no action
  85.             builder.setNegativeButton("No") { dialog, _ -> dialog.dismiss() }
  86.             //performing yes action
  87.             builder.setPositiveButton("Yes") { dialog, _ ->
  88.                 val intent = Intent(this, MainActivity2::class.java)
  89.                 startActivity(intent)
  90.             }
  91.             // Create the AlertDialog
  92.             val alertDialog: AlertDialog = builder.create()
  93.             // Set other dialog properties
  94.             alertDialog.setCancelable(false)
  95.             alertDialog.show()
  96.         }
  97.     }
  98.     //exit the app!
  99.     override fun onBackPressed() {
  100.         finishAffinity()
  101.     }
  102. }
  103.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement