Opa,
Onde eu vejo a Exception? Aqui só aparece no emulador "Unfortunately, Agenda has stoppped." E aperta Ok e volta pra tela inicial da Agenda..
Comentei o finish() aqui.. Não é ele o problema.
Colocando o código utilizado aqui (view principal + botão clicado + ok e voltar à view principal).
public class ListaAlunosActivity extends AppCompatActivity {
private ListView listaAlunos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
listaAlunos = (ListView) findViewById(R.id.lista_alunos);
listaAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> lista, View item, int position, long id) {
Aluno aluno = (Aluno) lista.getItemAtPosition(position);
Intent intent = new Intent(ListaAlunosActivity.this, FormularioActivity.class);
intent.putExtra("aluno", aluno);
startActivity(intent);
}
});
Button novoAluno = (Button) findViewById(R.id.novo_aluno);
novoAluno.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(ListaAlunosActivity.this, FormularioActivity.class);
startActivity(intent);
}
});
registerForContextMenu(listaAlunos);
}
public class FormularioActivity extends AppCompatActivity {
private FormularioHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario);
this.helper = new FormularioHelper(this);
Intent intent = getIntent();
Aluno aluno = (Aluno) intent.getSerializableExtra("aluno");
if(aluno != null) {
this.helper.preencheFormulario(aluno);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_formulario_ok:
Aluno aluno = helper.pegaAluno();
AlunoDAO dao = new AlunoDAO(this);
if(aluno.getId() != null) {
dao.altera(aluno);
} else {
dao.insere(aluno);
}
dao.close();
finish();
break;
}
return super.onOptionsItemSelected(item);
}