0

Can I use such function to display snackbarError message ? I get this errors :

    at com.firestore.intro.signUpActivity.onCreate$lambda-0(signUpActivity.kt:29)
    at com.firestore.intro.signUpActivity.$r8$lambda$JcZyp7qOhhfZOMNqGi0G1w812tc(Unknown Source:0)
    at com.firestore.intro.signUpActivity$$ExternalSyntheticLambda0.onClick(Unknown Source:13)
    at android.view.View.performClick(View.java:7448)
    at android.view.View.performClickInternal(View.java:7425)
    at android.view.View.access$3600(View.java:810)
    at android.view.View$PerformClick.run(View.java:28305)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7656)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
class signUpActivity() : BaseActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sign_up)
        window.setFlags(
            WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN
        )
        var FNEdt = findViewById<EditText>(R.id.FNId)
        var LNEdt = findViewById<EditText>(R.id.LNId)
        var mailEdt = findViewById<EditText>(R.id.emailId)
        var passEdt1 = findViewById<EditText>(R.id.passwordId1)
        var passEdt2 = findViewById<EditText>(R.id.passwordId2)


        findViewById<Button>(R.id.signInId).setOnClickListener {
            validateregister(FNEdt, LNEdt, mailEdt, passEdt1, passEdt2)
        }
    }


    private fun validateregister(FNEdt:EditText, LNEdt:EditText,mailEdt:EditText, passEdt1:EditText, passEdt2:EditText):Boolean {
        var FNText= FNEdt.text.toString()
        var LNText = LNEdt.text.toString().trim()
        var mailText = mailEdt.text.toString().trim()
        var passText1 = passEdt1.text.toString().trim()
        var passText2 =passEdt2.text.toString().trim()
        return when {
            FNText.isEmpty() -> {
                showErrorSnack( resources.getString(R.string.enterFN),  true )
                false
            }
            LNText.isEmpty() -> {
                showErrorSnack( resources.getString(R.string.enterLN), true )
                false
            }
            mailText.isEmpty() -> {
                showErrorSnack( resources.getString(R.string.enterMail),  true )
                false
            }
            passText1.isEmpty() -> {
                showErrorSnack( resources.getString(R.string.enterPassword1), true )
                false
            }
            passText2.isEmpty() -> {
                showErrorSnack( resources.getString(R.string.enterPassword2), true )
                false
            } else -> {
                showErrorSnack( "Данные верны", false)
                true
            }
        }
    }
}
open class BaseActivity : AppCompatActivity() {
     fun showErrorSnack(message:String, errorMessage:Boolean) {
        val snackbar = Snackbar.make( 
      findViewById(android.R.id.content), message, Snackbar.LENGTH_LONG )
        val snackbarView = snackbar.view
        if(errorMessage)  {
            snackbarView.setBackgroundColor(
                ContextCompat.getColor(this@BaseActivity, R.color.snackerror)           )
        } else {
            ContextCompat.getColor(this@BaseActivity, R.color.snacksuccess)
        }
        snackbar.show()
    }
}
Elikill58
  • 4,050
  • 24
  • 23
  • 45

0 Answers0