Create and Login application as above. Validate login data and display Error to user using setError() method

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tvUsername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Username: "
android:layout_marginTop="56dp"
android:layout_marginLeft="20dp"/>

<EditText
android:id="@+id/etUsername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_toRightOf="@+id/tvUsername"
android:layout_alignBaseline="@+id/tvUsername"/>
<TextView
android:id="@+id/tvPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password: "
android:layout_marginTop="20dp"
android:layout_below="@+id/etUsername"
android:layout_marginLeft="20dp"/>
<EditText
android:id="@+id/etPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_below="@+id/etUsername"
android:layout_toRightOf="@+id/tvPassword"
android:layout_alignBaseline="@+id/tvPassword"
android:inputType="textPassword"/>

<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/etPassword"
android:layout_marginTop="50dp"
android:layout_marginLeft="20dp"
android:text="Login"/>
<Button
android:id="@+id/btnCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/etPassword"
android:layout_marginTop="50dp"
android:layout_marginLeft="20dp"
android:layout_alignBaseline="@+id/btnLogin"
android:layout_toRightOf="@+id/btnLogin"
android:text="Cancel"/>

</RelativeLayout>

MainActivity.java

package com.example.helloworld;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
EditText etUsername,etPassword;
Button btnLogin,btnCancel;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etUsername=(EditText)findViewById(R.id.etUsername);
etPassword=(EditText)findViewById(R.id.etPassword);
btnLogin=(Button)findViewById(R.id.btnLogin);
btnCancel=(Button)findViewById(R.id.btnCancel);

btnLogin.setOnClickListener(this);
btnCancel.setOnClickListener(this);
}

@Override
public void onClick(View v)
{
String na=etUsername.getText().toString();
String pa=etPassword.getText().toString();
switch (v.getId()) {
case R.id.btnLogin:
if (na.equals("tony"))
{
if (pa.equals("ironman"))
{
Toast.makeText(this, "Login success", Toast.LENGTH_LONG).show();
} else {
etPassword.setError("Invalid Password!");
}
}
else {
etUsername.setError("Invalid Username");
}
break;

case R.id.btnCancel:
etPassword.setText("");
etUsername.setText("");
break;
default:
break;

}
}

}

Output