Search code examples
androidvalidationandroid-edittextonclicklistener

editText field is required before moving on to another Activity


I have validation for editText. If the editText field is empty it should fail validation and stop the user moving on to another Activity, as a value is required. How to do it? I know this is a basic question, but I can't figure out how to do this.

My code:

btninsert = (Button)findViewById(R.id.btn_insert);
btninsert.setOnClickListener( new View.OnClickListener() {
    public void onClick(View v) {
        insertValues();
        EditText userName = (EditText) findViewById(R.id.editText1);

        if( userName.getText().toString().length() == 0 )
            userName.setError( "First name is required!" );

        Intent i = new Intent(getApplicationContext(), Login.class);
        startActivity(i);
    }
});

When this Button is clicked the user is redirect to next screen, but I need that if validation fails they stay on the current Activity, and only when validation is successful (i.e. a value has been entered) they go to the next Activity.


Solution

  • It's easy...check if your EditText is empty as in below example below.

    if( TextUtils.isEmpty(userName.getText())){
       /**
        *   You can Toast a message here that the Username is Empty    
        **/
        
       userName.setError( "First name is required!" );
    
    }else{
       Intent i = new Intent(getApplicationContext(), Login.class);
       startActivity(i);
    }
    

    Here is a Kotlin version:

    userName.takeIf { it.isEmpty() }?.let {
      userName.error = "First name is required!"
    } ?: run {
       startActivity(Intent(applicationContext, this))
    }