Oi, minha agenda quando vou criar um novo aluno não salva mais, porque, mesmo que não esteja editando o aluno, ele puxa o id = 0. segue os códigos a baixo, agradeço desde já: ListaAlunosActivity
public class ListaAlunosActivity extends AppCompatActivity {
private ListView listaAlunos;
private List<Aluno> alunos;
private AlunoDAO dao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
listaAlunos = (ListView) findViewById(R.id.lista_alunos);
FloatingActionButton add = (FloatingActionButton) findViewById(R.id.ListaAddAluno);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent IntentFormulario = new Intent(ListaAlunosActivity.this, FormularioActivity.class);
startActivity(IntentFormulario);
}
});
listaAlunos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> lista, View item, int position, long id) {
Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(position);
Intent form = new Intent(ListaAlunosActivity.this, FormularioActivity.class);
form.putExtra("aluno", aluno);
startActivity(form);
}
});
/*listaAlunos.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> lista, View item, int position, long id) {
Toast.makeText(ListaAlunosActivity.this, "Clique longo", Toast.LENGTH_SHORT).show();
return false;
}
});*/
registerForContextMenu(listaAlunos);
}
@Override
protected void onResume() {
super.onResume();
carregarTela();
}
private void carregarTela(){
dao = new AlunoDAO(this);
alunos = dao.buscaAlunos();
dao.close();
ArrayAdapter<Aluno> adapter = new ArrayAdapter<Aluno>(this, android.R.layout.simple_list_item_1, alunos);
listaAlunos.setAdapter(adapter);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, final ContextMenu.ContextMenuInfo menuInfo) {
MenuItem excluir = menu.add("Excluir");
excluir.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
Aluno aluno = (Aluno) listaAlunos.getItemAtPosition(info.position);
dao.exclui(aluno);
Toast.makeText(ListaAlunosActivity.this, "Excluir o aluno "+ aluno.getNome(), Toast.LENGTH_SHORT).show();
carregarTela();
return false;
}
});
}
}
FormularioActivity
public class FormularioActivity extends AppCompatActivity {
private FormularioHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario);
helper = new FormularioHelper(this);
Intent intent = getIntent();
Aluno aluno = (Aluno) intent.getSerializableExtra("aluno");
if (aluno != null){
helper.preencheFormulario(aluno);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_formulario, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.menu_formulario_ok:{
Aluno aluno = helper.getAluno();
AlunoDAO dao = new AlunoDAO(this);
//Esse if apresenta o id = 0 e chama o metodo dao.altera
if (String.valueOf(aluno.getId()) == null ) {
dao.insere(aluno);
}else{
dao.altera(aluno);
}
dao.close();
Toast.makeText(FormularioActivity.this, aluno.getNome() + " salvo!", Toast.LENGTH_SHORT).show();
finish();
break;
}
}
return super.onOptionsItemSelected(item);
}
}
se alguém descobrir, por favor me avise, Obrigado