4
respostas

04-Apresentando aluno na lista

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?

FormularioAlunoActivityAluno.java

4 respostas

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. FormularioActivity.javaFormularioAlunoActivity

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.javaAluno.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.