I have my classes and javas codes, I would like to add more information in different activities linking with the user's registry data. How do I do that ? I just need this to build the app
Register Activity:
public class RegisterBasicInfo extends AppCompatActivity {
private EditText nome;
private EditText email;
private EditText senha;
private Button botaoCadastrar;
private Usuario usuario;
private FirebaseAuth autenticacao;
@Override
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registerbasic_info);
nome = (EditText) findViewById(R.id.edit_cadastro_nome);
email = (EditText) findViewById(R.id.edit_cadastro_email);
senha = (EditText) findViewById(R.id.edit_cadastro_senha);
botaoCadastrar = (Button) findViewById(R.id.bt_cadastrar);
botaoCadastrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
usuario = new Usuario();
usuario.setNome(nome.getText().toString());
usuario.setEmail(email.getText().toString());
usuario.setSenha(senha.getText().toString());
cadastrarUsuario();
}
});
}
private void cadastrarUsuario () {
autenticacao = ConfiguracaoFirebase.getFirebaseAutenticacao();
autenticacao.createUserWithEmailAndPassword(
usuario.getEmail(),
usuario.getSenha()
).addOnCompleteListener(RegisterBasicInfo.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Toast.makeText(RegisterBasicInfo.this, "Sucesso ao cadastrar usuário", Toast.LENGTH_LONG).show();
String identificadorUsuario = Base64Custom.codificarBase64(usuario.getEmail());
usuario.setId(identificadorUsuario);
usuario.salvar();
abrirLoginUsuario();
} else {
String erro = "";
try {
throw task.getException();
} catch (FirebaseAuthWeakPasswordException e) {
erro = "Escolha uma senha que contenha, letras e números.";
} catch (FirebaseAuthInvalidCredentialsException e) {
erro = "Email indicado não é válido.";
} catch (FirebaseAuthUserCollisionException e) {
erro = "Já existe uma conta com esse e-mail.";
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(RegisterBasicInfo.this, "Erro ao cadastrar usuário: " + erro, Toast.LENGTH_LONG).show();
}
}
});
}
public void abrirLoginUsuario () {
Intent intent = new Intent(RegisterBasicInfo.this,RegisterGender.class);
startActivity(intent);
finish();
}
}
My Class Users
public class Usuario {
private String id;
private String nome;
private String email;
private String senha;
private String sex;
private String preferSex;
public Usuario(){
}
public void salvar(){
DatabaseReference referenciaFirebase = ConfiguracaoFirebase.getFirebase();
referenciaFirebase.child("usuarios").child( getId() ).setValue( this );
}
@Exclude
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Exclude
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPreferSex() {
return preferSex;
}
public void setPreferSex(String preferSex) {
this.preferSex = preferSex;
}
}
so far everything is ok, but now that you add the sex with the button, it opens the screen but does not register
public class RegisterGender extends AppCompatActivity {
private FirebaseAuth mAuth;
String password;
User user;
boolean male = true;
private Button genderContinueButton;
private Button maleSelectionButton;
private Button femaleSelectionButton;
private DatabaseReference mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register_gender);
mAuth = FirebaseAuth.getInstance();
Intent intent = getIntent();
user = (User) intent.getSerializableExtra("classUser");
password = intent.getStringExtra("password");
maleSelectionButton = findViewById(R.id.maleSelectionButton);
femaleSelectionButton = findViewById(R.id.femaleSelectionButton);
genderContinueButton = findViewById(R.id.genderContinueButton);
mDatabase = FirebaseDatabase.getInstance().getReference();
//By default male has to be selected so below code is added
femaleSelectionButton.setAlpha(.5f);
femaleSelectionButton.setBackgroundColor(Color.GRAY);
maleSelectionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
maleButtonSelected();
}
Usuario user = new Usuario();
});
femaleSelectionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
femaleButtonSelected();
}
Usuario user = new Usuario();
});
genderContinueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openPreferenceEntryPage();
}
Usuario user = new Usuario();
});
}
public void maleButtonSelected() {
male = true;
maleSelectionButton.setBackgroundColor(Color.parseColor("#FF4081"));
maleSelectionButton.setAlpha(1.0f);
femaleSelectionButton.setAlpha(.5f);
femaleSelectionButton.setBackgroundColor(Color.GRAY);
}
public void femaleButtonSelected() {
male = false;
femaleSelectionButton.setBackgroundColor(Color.parseColor("#FF4081"));
femaleSelectionButton.setAlpha(1.0f);
maleSelectionButton.setAlpha(.5f);
maleSelectionButton.setBackgroundColor(Color.GRAY);
}
public void openPreferenceEntryPage() {
mDatabase.child("usuarios").push().setValue(user);
String ownSex = male ? "male" : "female";
user.setSex(ownSex);
//set default photo
String defaultPhoto = male ? "defaultMale" : "defaultFemale";
user.setProfileImageUrl(defaultPhoto);
Intent intent = new Intent(this, RegisterGenderPrefection.class);
intent.putExtra("password", password);
intent.putExtra("classUser", user);
startActivity(intent);
}
}