У меня сейчас проблема с макетом ввода текста, я сделал сообщение об ошибке, которое показывает, что что-то не так с помощью setError, но проблема в том, что сообщение об ошибке продолжает отображаться даже после ввода действительной информации в тексте редактирования я не знаю, как отменить сообщение об ошибке, если введен действительный адрес электронной почты
вторая проблема - когда я ввожу только пароль и нажимаю кнопку регистрации, приложение вылетает
вот код
package com.example.registerloginapp;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.textfield.TextInputLayout;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
public class Register extends AppCompatActivity {
private TextInputLayout memail, mpassword;
Button reg;
FirebaseAuth fAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
memail = (TextInputLayout) findViewById(R.id.text_input_email);
mpassword = (TextInputLayout) findViewById(R.id.text_input_password);
reg = findViewById(R.id.reg_button);
TextView textView = findViewById(R.id.register);
String text = "Already have an account? Log in";
SpannableString ss = new SpannableString(text);
ClickableSpan clickableSpan1 = new ClickableSpan() {
@Override
public void onClick(@NonNull View widget) {
startActivity(new Intent(getApplicationContext(), Login.class));
}
};
ss.setSpan(clickableSpan1, 25, 31, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(ss);
textView.setMovementMethod(LinkMovementMethod.getInstance());
fAuth = FirebaseAuth.getInstance();
if (fAuth.getCurrentUser() != null) {
startActivity(new Intent(getApplicationContext(), MainActivity.class));
finish();
}
reg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = memail.getEditText().getText().toString().trim();
String password = mpassword.getEditText().getText().toString().trim();
if (TextUtils.isEmpty(email)) {
memail.setError("Email is required");
}
if (TextUtils.isEmpty(password)) {
mpassword.setError("Password is required");
return;
}
fAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
startActivity(new Intent(getApplicationContext(), MainActivity.class));
} else {
Toast.makeText(Register.this, "" + task.getException().getMessage(), Toast.LENGTH_LONG).show();
}
}
});
}
});
}
}