Não da para colocar somente um finish(); ? fiz assim e funcionou do jeito esperado para mim. Olhe a minha classe como está. Ela abre a lista logo ao iniciar o programa pois penso que no futuro vai ter algo gravado na memória ou algo do tipo e vamos apresentar uma lista logo ao iniciar o programa.
public class ListaDeAlunosActivity extends AppCompatActivity {
private AlunoDAO dao = new AlunoDAO();
private ArrayList<Aluno> listaAlunos = dao.getListaDeAlunos();
private static final String TITULO = "Lista de alunos";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
setTitle(TITULO);
abreLista();
configuraFABNovoAluno();
}
private void abreLista() {
ListView lista = findViewById(R.id.activity_listagem_de_alunos);
lista.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listaAlunos));
listnerDeClickParaEdicaoDeAluno(lista);
listenerDeClickLongoParaRemoverAluno(lista);
}
private void listenerDeClickLongoParaRemoverAluno(ListView lista) {
lista.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Aluno alunoEscolhido = (Aluno) parent.getItemAtPosition(position);
if(dao.removeAluno(alunoEscolhido)){
finish();
}
return true;
}
});
}
private void listnerDeClickParaEdicaoDeAluno(ListView lista) {
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//Toast.makeText(ListaDeAlunosActivity.this, "posicao" + position, Toast.LENGTH_LONG).show();
Aluno alunoEscolhido = (Aluno) parent.getItemAtPosition(position);
// Aluno alunoEscolhido = listaAlunos.get(position);
abreFormularioEditaAlunoActivity(alunoEscolhido);
}
});
}
private void configuraFABNovoAluno() {
FloatingActionButton botaoNovoAluno = findViewById(R.id.activity_lista_alunos_fab_novo_aluno);
botaoNovoAluno.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
abreFormularioNovoAlunoActivity();
}
});
}
private void abreFormularioNovoAlunoActivity() {
startActivity(new Intent(this, FormularioNovoAlunoActivity.class));
}
private void abreFormularioEditaAlunoActivity(Aluno alunoId) {
Intent dadosParaEditarAluno = new Intent(this, FormularioEditaAlunoActivity.class);
dadosParaEditarAluno.putExtra("aluno", alunoId);
startActivity(dadosParaEditarAluno);
}
@Override
protected void onResume() {
super.onResume();
abreLista();
}