já refiz várias vezes a aula 5 e realmente não consigo fazer o deletar funcionar, já conferir o código milhões de vezes...Por favor, veja meu código abaixo e me diz o que tah faltando para eu continuar o curso, pq parei na aula 5 e não consigo sair mais.
ListaAlunos.java
public class ListaAlunos extends Activity {
private ListView lista;
private Aluno aluno;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listagem_alunos);
lista=(ListView)findViewById(R.id.lista);
registerForContextMenu(lista);
lista.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int posicao, long id) {
Toast.makeText(ListaAlunos.this, "Click na Posição"+posicao, Toast.LENGTH_SHORT).show();
}
});
lista.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapter, View view,
int posicao, long id) {
aluno = (Aluno) adapter.getItemAtPosition(posicao);
return false;
}
});
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
menu.add("Ligar");
menu.add("Enviar SMS");
menu.add("Navegar no Site");
MenuItem deletar= menu.add("Deletar");
deletar.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
AlunoDAO dao = new AlunoDAO(ListaAlunos.this);
dao.deletar(aluno);
dao.close();
carregaLista();
return false;
}
});
menu.add("Ver no Mapa");
menu.add("Enviar email");
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
protected void onResume() {
super.onResume();
carregaLista();
}
private void carregaLista() {
AlunoDAO dao=new AlunoDAO(this);
List<Aluno> alunos=dao.getLista();
dao.close();
int layout=android.R.layout.simple_list_item_1;
ArrayAdapter<Aluno>adapter=new ArrayAdapter<Aluno>(this, layout, alunos);
lista.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(R.menu.lista_alunos, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemClicado=item.getItemId();
switch (itemClicado) {
case R.id.novo:
Intent irParaFormulario=new Intent(this, Formulario.class);
startActivity(irParaFormulario);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
}
AlunoDAO.java
public class AlunoDAO extends SQLiteOpenHelper {
private static final String DATABASE = "CadastroSimples";
private static final int VERSAO = 1;
public AlunoDAO(Context context) {
super(context, DATABASE, null, VERSAO);
// TODO Auto-generated constructor stub
}
public void salva(Aluno aluno) {
ContentValues values=new ContentValues();
values.put("nome",aluno.getNome());
values.put("site",aluno.getSite());
values.put("endereco",aluno.getEndereco());
values.put("telefone", aluno.getTelefone());
values.put("nota",aluno.getNota());
values.put("foto",aluno.getFoto());
getWritableDatabase().insert("Alunos", null, values);
}
@Override
public void onCreate(SQLiteDatabase db) {
String ddl="CREATE TABLE Alunos(id PRIMARY KEY," +
"nome TEXT UNIQUE NOT NULL, telefone TEXT," +
"endereco TEXT, site TEXT, foto TEXT, nota REAL);";
db.execSQL(ddl);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String ddl="DROP TABLE IF EXISTS Alunos";
db.execSQL(ddl);
this.onCreate(db);
}
public List<Aluno> getLista() {
String[] colunas={"id", "nome", "site", "endereco", "telefone","nota", "foto"};
Cursor cursor=getWritableDatabase().query("Alunos", colunas, null, null, null, null, null);
ArrayList <Aluno> alunos=new ArrayList <Aluno>();
while(cursor.moveToNext()){
Aluno aluno=new Aluno();
aluno.setId(cursor.getLong(0));
aluno.setNome(cursor.getString(1));
aluno.setSite(cursor.getString(2));
aluno.setEndereco(cursor.getString(3));
aluno.setTelefone(cursor.getString(4));
aluno.setNota(cursor.getDouble(5));
aluno.setFoto(cursor.getString(6));
alunos.add(aluno);
}
return alunos;
}
public void deletar(Aluno aluno) {
String[] args={aluno.getId().toString()};
getWritableDatabase().delete("Alunos", "id=?", args);
}
}
FormularioHelper.java
public class FormularioHelper{
private EditText editNome;
private EditText editSite;
private EditText editEndereco;
private EditText editTelefone;
private RatingBar ratingNota;
public FormularioHelper(Formulario formulario) {
editNome=(EditText)formulario.findViewById(R.id.nome);
editSite=(EditText)formulario.findViewById(R.id.site);
editEndereco=(EditText)formulario.findViewById(R.id.endereco);
editTelefone=(EditText)formulario.findViewById(R.id.telefone);
ratingNota=(RatingBar)formulario.findViewById(R.id.nota);
}
public Aluno pegaAlunoDoFormulario() {
Aluno aluno=new Aluno();
aluno.setNome(editNome.getText().toString());
aluno.setSite(editSite.getText().toString());
aluno.setEndereco(editEndereco.getText().toString());
aluno.setTelefone(editTelefone.getText().toString());
aluno.setNota(Double.valueOf(ratingNota.getRating()));
return aluno;
}
}
AlunoDAO.java
public class AlunoDAO extends SQLiteOpenHelper {
private static final String DATABASE = "CadastroSimples";
private static final int VERSAO = 1;
public AlunoDAO(Context context) {
super(context, DATABASE, null, VERSAO);
// TODO Auto-generated constructor stub
}
public void salva(Aluno aluno) {
ContentValues values=new ContentValues();
values.put("nome",aluno.getNome());
values.put("site",aluno.getSite());
values.put("endereco",aluno.getEndereco());
values.put("telefone", aluno.getTelefone());
values.put("nota",aluno.getNota());
values.put("foto",aluno.getFoto());
getWritableDatabase().insert("Alunos", null, values);
}
@Override
public void onCreate(SQLiteDatabase db) {
String ddl="CREATE TABLE Alunos(id PRIMARY KEY," +
"nome TEXT UNIQUE NOT NULL, telefone TEXT," +
"endereco TEXT, site TEXT, foto TEXT, nota REAL);";
db.execSQL(ddl);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String ddl="DROP TABLE IF EXISTS Alunos";
db.execSQL(ddl);
this.onCreate(db);
}
public List<Aluno> getLista() {
String[] colunas={"id", "nome", "site", "endereco", "telefone","nota", "foto"};
Cursor cursor=getWritableDatabase().query("Alunos", colunas, null, null, null, null, null);
ArrayList <Aluno> alunos=new ArrayList <Aluno>();
while(cursor.moveToNext()){
Aluno aluno=new Aluno();
aluno.setId(cursor.getLong(0));
aluno.setNome(cursor.getString(1));
aluno.setSite(cursor.getString(2));
aluno.setEndereco(cursor.getString(3));
aluno.setTelefone(cursor.getString(4));
aluno.setNota(cursor.getDouble(5));
aluno.setFoto(cursor.getString(6));
alunos.add(aluno);
}
return alunos;
}
public void deletar(Aluno aluno) {
String[] args={aluno.getId().toString()};
getWritableDatabase().delete("Alunos", "id=?", args);
}
}
Aluno.java
public class Aluno {
private Long id;
private String nome;
private String site;
private String endereco;
private String telefone;
private Double nota;
private String foto;
@Override
public String toString() {
return nome;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public Double getNota() {
return nota;
}
public void setNota(Double nota) {
this.nota = nota;
}
public String getFoto() {
return foto;
}
public void setFoto(String foto) {
this.foto = foto;
}
}