Boa Noite, Meu FormularioAlunoActivity.java não reconhece nome, telefone e email. Copiei o mesmo código disponibilizado na aula 04-Apresentando aluno na lista e não consigo fazer reconhecer. O que posso ter errado?

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa Noite, Meu FormularioAlunoActivity.java não reconhece nome, telefone e email. Copiei o mesmo código disponibilizado na aula 04-Apresentando aluno na lista e não consigo fazer reconhecer. O que posso ter errado?

Tente fazer dessa forma: @Override public void onClick(View view) { String nome = campoNome.getText().toString(); String telefone = campoTelefone.getText().toString(); String email = campoEmail.getText().toString();
Aluno alunoCriado = new Aluno(nome, telefone, email);
dao.salva(alunoCriado);
finish();
Aluno alunoCriado = criaAluno();
salva(alunoCriado);
}
Boa Noite.
A sugestão resolveu o primeiro problema mas deixou outras variáveis vermelhas sem reconhecer.
FormularioAlunoActivity
package br.com.alura.agenda.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import br.com.alura.agenda.AlunoDAO.AlunoDAO;
import br.com.alura.agenda.R;
import br.com.alura.agenda.model.Aluno;
public class FormularioAlunoActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario_aluno);
final AlunoDAO dao = new AlunoDAO();
// restante do código
Button botaoSalvar = findViewById(R.id.activity_formulario_aluno_botao_salvar);
botaoSalvar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String nome = campoNome.getText().toString();
String telefone = campoTelefone.getText().toString();
String email = campoEmail.getText().toString();
Aluno alunoCriado = new Aluno(nome, telefone, email);
dao.salva(alunoCriado);
finish();
Aluno alunoCriado = criaAluno();
salva(alunoCriado);
startActivity(new Intent(FormularioAlunoActivity.this,
ListaAlunosActivity.class));
}
});
}
}
Aluno.java
package br.com.alura.agenda.model;
import androidx.annotation.NonNull;
public class Aluno {
private final String nome;
private final String telefone;
private final String email;
public Aluno(String nome, String telefone, String email) {
this.nome = nome;
this.telefone = telefone;
this.email = email;
}
@NonNull
@Override
public String toString() {
return nome;
}
}
Olá Laura, não sei se ainda precisa da solução, mas ao que parece o seu código está faltando a parte de atribuir os valores nas variáveis "campoNome", "campoTelefone" e "campoEmail" pegando os EditTexts, meu código está em Kotlin mas vou mostrar como eu fiz: (Deixei abaixo do meu código o exemplo em Java para você ver como colocar no seu projeto.)
class FormularioAlunoActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_formulario_aluno)
val dao = AlunosDao()
/* Faltou essa parte - No seu projeto está escrito: // restante do código
val campoNome: EditText = findViewById(R.id.acitivity_formulario_aluno_nome)
val campoTelefone: EditText = findViewById(R.id.acitivity_formulario_aluno_telefone)
val campoEmail: EditText = findViewById(R.id.acitivity_formulario_aluno_email)
*/
val btnSalvar: Button = findViewById(R.id.activity_formulario_aluno_salvar)
btnSalvar.setOnClickListener {
val nome = campoNome.text.toString()
val telefone = campoTelefone.text.toString()
val email = campoEmail.text.toString()
val alunoCriado = Aluno(nome, telefone, email)
dao.salva(alunoCriado)
startActivity(Intent(this, MainActivity::class.java))
}
}
}Como está usando a linguagem Java ficaria:
final EditText campoNome = findViewById(R.id.acitivity_formulario_aluno_nome)
final EditText campoTelefone = findViewById(R.id.acitivity_formulario_aluno_telefone)
final EditText campoEmail = findViewById(R.id.acitivity_formulario_aluno_email)
Espero ter ajudado, bons estudos!
Boa Noite, Muito obrigada pela atenção!
Sua sugestão resolveu meu problema.