how to create signup page in android studio
in this article
today learn how to create signup page in android studio. To allow only
registered users to our android application, we need to implement login and
registration screens to ask the users to register first, then login to the
application to get access to the content in an application.
Now we will see how to
implement login and registration screens using material design in android
application like as shown following.
Follow the full source code signup form in android studio.:
1.build.gradle:
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
2.MainActivity:java:
package com.akash.signupform;
import android.content.Intent;
import android.util.Patterns;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.textfield.TextInputLayout;
public class MainActivity extends AppCompatActivity {
EditText name, email, phone, password;
Button register;
TextView login;
boolean isNameValid, isEmailValid, isPhoneValid, isPasswordValid;
TextInputLayout nameError, emailError, phoneError, passError;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = (EditText) findViewById(R.id.name);
email = (EditText) findViewById(R.id.email);
phone = (EditText) findViewById(R.id.phone);
password = (EditText) findViewById(R.id.password);
login = (TextView) findViewById(R.id.login);
register = (Button) findViewById(R.id.register);
nameError = (TextInputLayout) findViewById(R.id.nameError);
emailError = (TextInputLayout) findViewById(R.id.emailError);
phoneError = (TextInputLayout) findViewById(R.id.phoneError);
passError = (TextInputLayout) findViewById(R.id.passError);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SetValidation();
}
});
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// redirect to LoginActivity
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
startActivity(intent);
}
});
}
public void SetValidation() {
// Check for a valid name.
if (name.getText().toString().isEmpty()) {
nameError.setError(getResources().getString(R.string.name_error));
isNameValid = false;
} else {
isNameValid = true;
nameError.setErrorEnabled(false);
}
// Check for a valid email address.
if (email.getText().toString().isEmpty()) {
emailError.setError(getResources().getString(R.string.email_error));
isEmailValid = false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches()) {
emailError.setError(getResources().getString(R.string.error_invalid_email));
isEmailValid = false;
} else {
isEmailValid = true;
emailError.setErrorEnabled(false);
}
// Check for a valid phone number.
if (phone.getText().toString().isEmpty()) {
phoneError.setError(getResources().getString(R.string.phone_error));
isPhoneValid = false;
} else {
isPhoneValid = true;
phoneError.setErrorEnabled(false);
}
// Check for a valid password.
if (password.getText().toString().isEmpty()) {
passError.setError(getResources().getString(R.string.password_error));
isPasswordValid = false;
} else if (password.getText().length() < 6) {
passError.setError(getResources().getString(R.string.error_invalid_password));
isPasswordValid = false;
} else {
isPasswordValid = true;
passError.setErrorEnabled(false);
}
if (isNameValid && isEmailValid && isPhoneValid && isPasswordValid) {
Toast.makeText(getApplicationContext(), "Successfully", Toast.LENGTH_SHORT).show();
}
}
}
3.activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient"
android:padding="16dp"
android:scrollbarThumbVertical="@null"
tools:context=".MainActivity">
<android.support.v7.widget.CardView
xmlns:Card_View="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:padding="10dp"
Card_View:cardCornerRadius="5dp"
Card_View:cardElevation="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:id="@+id/nameError"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="@string/name"
android:inputType="textNoSuggestions"
android:maxLines="1"
android:paddingStart="5dp"
android:singleLine="true"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/emailError"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="@string/prompt_email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:paddingStart="5dp"
android:singleLine="true"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/phoneError"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<EditText
android:id="@+id/phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="@string/phone_number"
android:maxLength="12"
android:inputType="number"
android:maxLines="1"
android:paddingStart="5dp"
android:singleLine="true"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/passError"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:passwordToggleEnabled="true"
android:layout_marginTop="5dp">
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:hint="@string/prompt_password"
android:inputType="textPassword"
android:maxLines="1"
android:paddingStart="5dp"
android:singleLine="true"/>
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/register"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_margin="20dp"
android:background="@drawable/button_gradient"
android:text="@string/register"
android:textColor="@android:color/white"
android:textSize="16sp"/>
<TextView
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:gravity="center"
android:text="@string/not_register"
android:textColor="@color/colorPrimary"
android:textSize="16sp"/>
</LinearLayout>
</android.support.v7.widget.CardView>
</ScrollView>
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="225"
android:endColor="@android:color/holo_orange_dark"
android:startColor="@android:color/holo_orange_light"/>
</shape>
5.create follow the create XML for drawable file name below edit_text_background.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:color="@android:color/holo_orange_dark"
android:width="1dp"/>
</shape>
6.create follow the create XML for drawable file name below gradient.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="225"
android:endColor="@android:color/darker_gray"
android:startColor="#044fab"/>
</shape>
7.create follow the create XML for drawable file name below round_background.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#fff6f6"/>
</shape>
8.download image:
9.strings.xml:
<string name="name">Name</string>
<string name="phone_number">Phone Number</string>
<string name="register">Register</string>
<string name="name_error">Please enter your name</string>
<string name="phone_error">Please enter your phone number</string>
<string name="email_error">Please enter your email address</string>
<string name="error_invalid_email">This email address is invalid</string>
<string name="password_error">Please enter a password</string>
<string name="error_invalid_password">Please enter a minimum password of 6 characters</string>
10.colors.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
<color name="zircon">#e0e6e4</color>
</resources>
11.styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
12. Create Activity Name LoginActivity.java:
package com.akash.signupform;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class LoginActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
}
}
13.activity_login.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LoginActivity">
</androidx.constraintlayout.widget.ConstraintLayout>
14.AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.akash.signupform">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".LoginActivity"></activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
No comments:
Post a Comment