ao salvar a primeira vez ele até salva, porém ao salvar o segundo nome da lista, ele sobrescreve o primeiro já salvo e salva novamente na segunda linha. activity ListaDeAlunos
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
configuraBotaoFloat();
}
@Override
protected void onResume() {
super.onResume();
configuraLista(dao);
}
private void configuraLista(AlunoDAO dao) {
setTitle(TITULO_APPBAR);
ListView listaDealunos = findViewById(R.id.activity_lista_alunos);
final List<Aluno> alunos = dao.todos();
configuraAdapter(listaDealunos, alunos);
configuraListenerDeCliqueporItem(listaDealunos);
}
private void configuraListenerDeCliqueporItem(ListView listaDealunos) {
listaDealunos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int posicao, long id) {
Aluno alunoEscolhido = (Aluno) adapterView.getItemAtPosition(posicao);
abreFormularioModoEdicao(alunoEscolhido);
}
});
}
private void abreFormularioModoEdicao(Aluno aluno) {
Intent vaiParaFormularioActivity = new Intent(ListaAlunosActivity.this, FormularioAlunoActivity.class);
vaiParaFormularioActivity.putExtra(CHAVE_ALUNO, aluno);
startActivity(vaiParaFormularioActivity);
}
private void configuraAdapter(ListView listaDealunos, List<Aluno> alunos) {
listaDealunos.setAdapter(new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1,
alunos));
}
private void configuraBotaoFloat() {
FloatingActionButton botaoAdicionar = findViewById(R.id.activity_btn_novoAluno);
botaoAdicionar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
abreFormularioModoEdicao();
}
});
}
private void abreFormularioModoEdicao() {
startActivity(new Intent(this,
FormularioAlunoActivity.class));
}
}
e essa é a activity do formulário de adição de nomes na agenda
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario_aluno);
iniciaCampos();
configuraBotaoSalvar();
Intent dados = getIntent();
if(dados.hasExtra(CHAVE_ALUNO)) {
aluno = (Aluno) dados.getSerializableExtra(CHAVE_ALUNO);
campoNome.setText(Aluno.getNome());
campoTelefone.setText(Aluno.getTelefone());
campoEmail.setText(Aluno.getEmail());
}else{
aluno = new Aluno();
}
}
private void configuraBotaoSalvar() {
Button botaoSalvar = findViewById(R.id.activity_formulario_aluno_botao_salvar);
botaoSalvar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
preencheAluno();
if(aluno.temIdValido()) {
dao.edita(aluno);
Toast.makeText(FormularioAlunoActivity.this,
"Editado com sucesso!", Toast.LENGTH_SHORT).show();
}else{
dao.salva(aluno);
Toast.makeText(FormularioAlunoActivity.this,
"salvo", Toast.LENGTH_SHORT).show();
}
finish();
}
});
}
private void iniciaCampos() {
campoNome = findViewById(R.id.activity_formulario_aluno_nome);
campoTelefone = findViewById(R.id.activity_formulario_aluno_telefone);
campoEmail = findViewById(R.id.activity_formulario_aluno_email);
}
private void preencheAluno() {
String nome = campoNome.getText().toString();
String telefone = campoTelefone.getText().toString();
String email = campoEmail.getText().toString();
Aluno.setNome(nome);
Aluno.setTelefone(telefone);
Aluno.setEmail(email);
}
}
Já revisei todo o código e até refatorei da mesma maneira que o professor mas não funcionou