Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

não consigo implementar serializable que da error no compilador


C:\Users\danie\AndroidStudioProjects\MInhaagendateste3\app\src\main\java\mineconstruc\com\minha_agenda_model\Aluno.java:10: error: <identifier> expected
    public Aluno implements  Serializable (String nome, String telefone, String email) {
                ^

    CÓDIGO DO ALUNO

package mineconstruc.com.minha_agenda_model;

import java.io.Serializable;

public class Aluno implements Serializable {


    private final String nome;
    private final String telefone;
    private final String email;

    public Aluno implements  Serializable (String nome, String telefone, String email) {

        this.nome = nome ;
        this.telefone = telefone;
        this.email = email;

    }


    public String getNome() {
        return nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public String getEmail() {
        return email;
    }


    @Override
    public String toString() {
        return
                "nome=" + nome + '\'' +
                ", telefone='" + telefone + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}
3 respostas

meu código da lista de alunos

package mineconstruc.com.minha_agenda_ui.activity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import java.util.List;

import mineconstruc.com.minha_agenda_dao.AlunoDAO;
import mineconstruc.com.minha_agenda_model.Aluno;
import mineconstruc.com.minha_agenda_teste3.R;

public class Listadealuno extends AppCompatActivity {

    public static final String TITULO_DA_APPBAR = "Lista de Alunos";
    private final AlunoDAO dao = new AlunoDAO();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listadealunos);
        dao.salva(new Aluno("Alex", "1122223333", "alex@alura.com.br"));
        dao.salva(new Aluno("Fran", "1122223333", "fran@gmail.com"));


        setTitle(TITULO_DA_APPBAR);
        configuraFABNovoALuno();


    }

    private void configuraFABNovoALuno() {
        FloatingActionButton botaoNovoAluno = findViewById(R.id.activity_lista_de_akunos_fab_novo_aluno);
        botaoNovoAluno.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                abreFormularioListadeAluno();
            }
        });
    }

    private void abreFormularioListadeAluno() {
        startActivity(new Intent(this, FormularioNovoAlunoActivity.class));
    }

    @Override
    protected void onResume() {
        super.onResume();
        configuraLista();
    }

    private void configuraLista() {
        ListView listaDeAlunos = findViewById(R.id.activity_lista_alunos_listview);
        final List<Aluno> alunos = dao.todos();
        listaDeAlunos.setAdapter(new ArrayAdapter<>(this,
                android.R.layout.simple_list_item_1, alunos));
        listaDeAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int posicao, long id) {
                Aluno alunoEscolhido = alunos.get(posicao);
                Intent vaiParaFormularioActivity = new Intent(listaDeAlunos.this, FormularioNovoAlunoActivity.class);
                vaiParaFormularioActivity.putExtra("aluno", alunoEscolhido)
                startActivity(vaiParaFormularioActivity);


            }
        });

        }



            }











código da lista de alunos

package mineconstruc.com.minha_agenda_ui.activity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import java.util.List;

import mineconstruc.com.minha_agenda_dao.AlunoDAO;
import mineconstruc.com.minha_agenda_model.Aluno;
import mineconstruc.com.minha_agenda_teste3.R;

public class Listadealuno extends AppCompatActivity {

    public static final String TITULO_DA_APPBAR = "Lista de Alunos";
    private final AlunoDAO dao = new AlunoDAO();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listadealunos);



        setTitle(TITULO_DA_APPBAR);
        configuraFABNovoALuno();


    }

    private void configuraFABNovoALuno() {
        FloatingActionButton botaoNovoAluno = findViewById(R.id.activity_lista_de_akunos_fab_novo_aluno);
        botaoNovoAluno.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                abreFormularioListadeAluno();
            }
        });
    }

    private void abreFormularioListadeAluno() {
        startActivity(new Intent(this, FormularioNovoAlunoActivity.class));
    }

    @Override
    protected void onResume() {
        super.onResume();
        configuraLista();
    }

    private void configuraLista() {
        ListView listaDeAlunos = findViewById(R.id.activity_lista_alunos_listview);
        final List<Aluno> alunos = dao.todos();
        listaDeAlunos.setAdapter(new ArrayAdapter<>(this,
                android.R.layout.simple_list_item_1, alunos));
        listaDeAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int posicao, long id) {
                Aluno alunoEscolhido = alunos.get(posicao);
                Intent vaiParaFormularioActivity = new Intent(listaDeAlunos.this, FormularioNovoAlunoActivity.class);
                vaiParaFormularioActivity.putExtra("aluno", alunoEscolhido)
                startActivity(vaiParaFormularioActivity);


            }
        });

        }



            }











solução!

Fala Daniel, de boa?

Cara o problema tá na sua classe Aluno.

Lá, tu fez certo mas acabou colocando coisa a mais.

Quando queremos implementar uma interface, basta usarmos a palavra reservada implements na declaração da classe, coisa que você fez com maestria: public class Aluno implements Serializable

O erro está quando você tenta fazer isso novamente no construtor da sua classe public Aluno implements Serializable (String nome, String telefone, String email) ai é nesse ponto que ocorre o erro, basta remover isso do construtor que as coisas devem funcionar corretamente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software