i have tried everything when i run the app it runs but signup activity crashes and come back to the welcome screen.tell me what's the problem whether i'm doing something wrong or it's any other problem. this is signup activity code im using firebase
package com.example.chatzone;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.textfield.TextInputEditText;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class SignUp extends AppCompatActivity {
TextInputEditText UserName;
TextInputEditText Email;
TextInputEditText Pass01;
TextInputEditText conPass01;
Button signUp;
String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";
FirebaseAuth mAuth;
FirebaseUser mUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
UserName=findViewById(R.id.Username);
Email=findViewById(R.id.Email);
Pass01=findViewById(R.id.Password01);
conPass01=findViewById(R.id.Password02);
signUp=findViewById(R.id.Sign_Up02);
mAuth=FirebaseAuth.getInstance();
mUser=mAuth.getCurrentUser();
signUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
creatUser();
}
private void creatUser() {
Intent i = getIntent();
String BD = i.getStringExtra(userInfo.t1);
String FN = i.getStringExtra(userInfo.t2);
String LN = i.getStringExtra(userInfo.t3);
String PN = i.getStringExtra(userInfo.t4);
String email=Email.getText().toString();
String UN=UserName.getText().toString();
String Pass=Pass01.getText().toString();
String conPass=conPass01.getText().toString();
if(!email.matches(emailPattern)){
Toast.makeText(SignUp.this,"Enter valid Email Address",Toast.LENGTH_SHORT).show();
}else if(Pass == conPass)
{
Toast.makeText(SignUp.this,"Password and Confirm Password does not match",Toast.LENGTH_SHORT).show();
}else if(Pass.length()<6){
Toast.makeText(SignUp.this,"Password length should be Atleast 6 digit long",Toast.LENGTH_SHORT).show();
}else if(TextUtils.isEmpty(email) || TextUtils.isEmpty(UN) || TextUtils.isEmpty(Pass) || TextUtils.isEmpty(conPass))
{
Toast.makeText(SignUp.this,"Input Field can't be Empty",Toast.LENGTH_SHORT).show();
}else
{
mAuth.createUserWithEmailAndPassword(email,Pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful())
{
Toast.makeText(SignUp.this,"Registration Successful",Toast.LENGTH_SHORT).show();
nextAct();
}
else{
Toast.makeText(SignUp.this,""+task.getException(),Toast.LENGTH_SHORT).show();
}
}
});
}
}
private void nextAct() {
Intent in = new Intent(SignUp.this,MainActivity.class);
startActivity(in);
}
});
}
}
this is the error
FATAL EXCEPTION: main
Process: com.example.chatzone, PID: 30802
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chatzone/com.example.chatzone.SignUp}: java.lang.ClassCastException: com.google.android.material.textfield.TextInputLayout cannot be cast to com.google.android.material.textfield.TextInputEditText
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3754)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3912)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:239)
at android.app.ActivityThread.main(ActivityThread.java:8212)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)
Caused by: java.lang.ClassCastException: com.google.android.material.textfield.TextInputLayout cannot be cast to com.google.android.material.textfield.TextInputEditText
at com.example.chatzone.SignUp.onCreate(SignUp.java:35)
at android.app.Activity.performCreate(Activity.java:8119)
at android.app.Activity.performCreate(Activity.java:8103)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1359)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3727)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3912)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2319)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:239)
at android.app.ActivityThread.main(ActivityThread.java:8212)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1016)
the logcat is showing this type of error please help me solve this
Xml cod:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".SignUp">
<TextView
android:id="@+id/step2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:fontFamily="@font/knewave01"
android:text="Step 02: "
android:textColor="#808080"
android:textSize="50dp"
android:textStyle="bold" />
<TextView
android:id="@+id/Usertxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/step2"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:fontFamily="@font/knewave01"
android:text="User Info: "
android:textColor="@color/CZColor"
android:textSize="40sp"
android:textStyle="bold" />
<TextView
android:id="@+id/UserNameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/Usertxt"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:text="Username:"
android:textColor="@color/black"
android:textSize="20dp"
android:textStyle="bold"></TextView>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginStart="15dp"
android:layout_width="360dp"
android:layout_height="wrap_content"
android:id="@+id/Username"
android:hint="Username"
app:startIconDrawable="@drawable/user"
app:endIconMode="clear_text"
app:endIconTint="#808080"
app:boxStrokeColor="@color/CZColor"
android:layout_below="@id/UserNameText">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@color/CZColor">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/EmailText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/Username"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:text="Email:"
android:textColor="@color/black"
android:textSize="20dp"
android:textStyle="bold"></TextView>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginStart="15dp"
android:layout_width="360dp"
android:layout_height="wrap_content"
android:hint="Email"
android:id="@+id/Email"
app:startIconDrawable="@drawable/email"
app:endIconMode="clear_text"
app:endIconTint="#808080"
app:boxStrokeColor="@color/CZColor"
android:layout_below="@id/EmailText">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@color/CZColor"
android:inputType="textEmailAddress">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/PasswordText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/Email"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:text="Password:"
android:textColor="@color/black"
android:textSize="20dp"
android:textStyle="bold"></TextView>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginStart="15dp"
android:layout_width="360dp"
android:layout_height="wrap_content"
android:hint="Password"
android:id="@+id/Password01"
app:startIconDrawable="@drawable/key"
app:endIconMode="password_toggle"
app:endIconTint="#808080"
app:boxStrokeColor="@color/CZColor"
android:layout_below="@id/PasswordText">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@color/CZColor"
android:inputType="textPassword">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id="@+id/PasswordText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/Password01"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:text="Confirm Password:"
android:textColor="@color/black"
android:textSize="20dp"
android:textStyle="bold"></TextView>
<com.google.android.material.textfield.TextInputLayout
android:layout_marginStart="15dp"
android:layout_width="360dp"
android:layout_height="wrap_content"
android:hint="Confirm Password"
android:id="@+id/Password02"
app:startIconDrawable="@drawable/key"
app:endIconMode="clear_text"
app:endIconTint="#808080"
app:boxStrokeColor="@color/CZColor"
android:layout_below="@id/PasswordText01">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@color/CZColor">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/Sign_Up02"
android:layout_width="170dp"
android:layout_height="60dp"
android:layout_centerHorizontal="true"
android:layout_below="@id/Password02"
android:layout_marginTop="15dp"
android:text="SIGN UP"
android:textSize="20dp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Already have account ?"
android:textSize="22dp"
android:textColor="#808080"
android:textStyle="bold"
android:layout_marginStart="50dp"
android:layout_marginTop="10dp"
android:layout_below="@+id/Sign_Up02"
></TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sign In"
android:textSize="23dp"
android:textColor="@color/CZColor"
android:layout_marginStart="285dp"
android:layout_marginTop="10dp"
android:textStyle="bold"
android:layout_below="@+id/Sign_Up02"
></TextView>
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
app:srcCompat="@drawable/back"
android:background="@color/white"
/>
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar01"
android:indeterminate="true"
android:layout_centerInParent="true"
android:visibility="gone"></ProgressBar>
</RelativeLayout>
You can easily check why the problem in this log:
Caused by: java.lang.ClassCastException: com.google.android.material.textfield.TextInputLayout cannot be cast to com.google.android.material.textfield.TextInputEditText
You declare wrong view for variable Email. Try declare it with TextInputLayout.
And one more thing, you shouldn't declare name of variable like "Email,Username,Pass01". It will cause your project more difficult to maintain. Find naming convention to know more about it