Bom dia.
No meu app eu tbm uso o comando SQL para delete
em meus comandos não existe o ";" no final e funciona perfeitamente!
faz uma teste!
public void limpaTabela() {
SQLiteDatabase db = new DBHelper(ctx).getWritableDatabase();
db.execSQL("DELETE FROM " + TABLE_NAME);
db.close();
}
Em segunda-feira, 29 de abril de 2013 20h22min47s UTC-3, BP-Korp escreveu:
Boa noite,
Ja passei horas estudando e procurando informações mas até agora nao consegui sucesso nessa função.
Eu estou querendo deletar um item no banco de dados.
Eu to preenchendo a listview com os registros do banco, mas nao consegui ainda deletar algum registro.
Eu estou usando um AdapterListView customizado.
Alguem pode me ajudar?? Des de já eu agradeço muito!
Ja procurei algo similar aqui mas ainda nao achei.
Segue abaixo o codigo do meu programa.
Se alguem precisar do programa eu posto na Aqui pra voces.
------------------------------------------------------------ ------------------------------ -----------------
Classe LISTPERS.
package com.listteste;
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class ListaPers extends Activity implements OnItemClickListener {
private ListView listView;
private AdapterListView AdapterListView;
private ArrayList<ItemListView> itens;
SQLiteDatabase bancoDeDados = null; // banco de dados
Cursor cursor;
int i;
int b = 1;
EditText editText1;
Button button1;
TextView text2;
private void setMessage(String message) {
Log.e(" ListaPersonalisada ", message);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // identifica a ACTIVITY
// desse codigo
editText1 = (EditText) findViewById(R.id.editText1); // identifica o
// edittext no
// codigo
button1 = (Button) findViewById(R.id.button1); // identifica o botao no
// codigo
listView = (ListView) findViewById(R.id.listView1); // identifica o
// ListView
listView.setOnItemClickListener(this); // recebe o clique do listview
text2 = (TextView) findViewById(R.id.textView1);
// //////////// LISTVIEW COMPONENTES //////////////////////////////
itens = new ArrayList<ItemListView>(); // cria o ArrayList
// criar o adapter
AdapterListView = new AdapterListView(this, itens);
// Define o Adapter
listView.setAdapter(AdapterListView);
// cor quando é selecionado
listView.setCacheColorHint(Color.TRANSPARENT);
button1.setOnClickListener(new View.OnClickListener() { // recebe o
// clique do
// botao.
@Override
public void onClick(View v) {
gravarRegistro();
atualizaListView();
editText1.setText("");
}
});
setMessage(" ON CREATE OK!");
}
@Override
protected void onResume() {
super.onResume();
try {
abreOuCriaBanco();
atualizaListView();
} catch (Exception e) {
Toast.makeText(this, "ERRO " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
}
public boolean atualizaListView() { // metodo que vai consultar e jogar
// tudo na listview
itens.removeAll(itens); // a cada vez q executa esse metodo ele limpa o
// array e acrescenta o resultado do banco
try {
cursor = bancoDeDados.query("LISTAPERS", new String[] { "_ID",
"NOME", "TIME", "PAGO" }, null,// selection,
null,// selectionArgs,
null,// groupBy,
null,// having,
null,// orderBy,
null// limit
);
text2.setText("N de Reg: " + cursor.getCount()); // CONTADOR DE
// REGISTROS
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor
.moveToNext()) { // conta quantos registros tem no DB e joga
// no array e mostra na lista
ItemListView item = new ItemListView(cursor.getString(cursor
.getColumnIndex("NOME")), R.drawable.atualiza);
itens.add(item);
AdapterListView.notifyDataSetChanged();
}
return true;
} catch (Exception e) {
Toast.makeText(this,
"ERRO AO ADICIONAR NO ITEM LISTVIEW. " + e.getMessage(),
Toast.LENGTH_LONG).show();
return false;
}
}
public void abreOuCriaBanco() { // abre ou cria banco
try {
String NOME_BANCO = "LISTAPERSONALISADA";
String TABELA = "LISTAPERS";
String COLUNA_NOME = "NOME";
String COLUNA_TIME = "TIME";
String COLUNA_PAGO = "PAGO";
String COLUNA_ID = "_id";
String sql = "CREATE TABLE IF NOT EXISTS " + TABELA + " ("
+ COLUNA_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COLUNA_NOME + " text(20) not null," + COLUNA_TIME
+ " integer(2) default 0," + COLUNA_PAGO
+ " text(3) default NAO);";
// cria ou abre o banco de dados
bancoDeDados = openOrCreateDatabase(NOME_BANCO,
MODE_ENABLE_WRITE_AHEAD_LOGGING, null);
bancoDeDados.execSQL(sql);
Toast.makeText(this, "BD CRIADO COM SUCESSO! ", Toast.LENGTH_LONG)
.show();
} catch (Exception e) {
Toast.makeText(this, "BANCO DEU ERRO! ", Toast.LENGTH_LONG).show();
}
}
public void DeletaItemBanco(int rowId) { // abre ou cria banco
try {
///////////// NAO FUNCIONA NEM A PAU.
bancoDeDados.execSQL("DELETE FROM LISTAPERS" + " where _id="
+ rowId + ";");
Toast.makeText(this, "DELETE OK! ", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(this, "DELETE DEU ERRO! ", Toast.LENGTH_LONG).show();
}
}
public void fechaBanco() {
try {
bancoDeDados.close();
cursor.close();
} catch (Exception e) {
Toast.makeText(this,
"ERRO AO FECHAR BANCO. Exception E " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
public void gravarRegistro() { // grava registro no banco. captura do
// edittext e joga pro banco
try {
String sqlInsert = "INSERT INTO LISTAPERS (nome) values ('"
+ editText1.getText().toString() + "')";
bancoDeDados.execSQL(sqlInsert);
Toast.makeText(this, "Dados Gravados com Sucesso! ",
Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(this,
"ERRO Ao Gravar no BANCO. gravarRegistro()" + e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
@Override
protected void onStop() {
bancoDeDados.close();
cursor.close();
super.onStop();
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// Pega o item que foi selecionado
// ItemListView item = (ItemListView) AdapterListView.getItem(arg2);
// Demonstraçao
// Toast.makeText(this, "clicou " +
// item.getTexto(),Toast.LENGTH_LONG).show();
setMessage(" onItemClick(AdapterView<?> ");
}
}
------------------------------------------------------------ -------------------------
Classe AdapterListView
package com.listteste;
import java.util.ArrayList;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class AdapterListView extends BaseAdapter implements Filterable {
private LayoutInflater mInflater;
private ArrayList<ItemListView> itens;
private Context context;
ListaPers kkk = new ListaPers(); /////////////////////////////////////
private void setMessage(String message) {
Log.e(" AdapterListView ", message);
}
public AdapterListView(Context context, ArrayList<ItemListView> itens) {
// Itens que preencheram o listview
this.itens = itens;
// responsavel por pegar o Layout do item
mInflater = LayoutInflater.from(context);
this.context = context;
setMessage("AdapterListView OK!");
}
@Override
public int getCount() {
setMessage("GetCount");
return itens.size();
}
@Override
public ItemListView getItem(int position) {
setMessage("get Position ITem clicado???");
return itens.get(position);
}
@Override
public long getItemId(int position) {
setMessage("GET ITEM ID " + position);
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
// Pega o item de acordo com a posicao
final ItemListView item = itens.get(position);
ViewHolder holder;
convertView = mInflater.inflate(R.layout.item_listview, null);
// Creates a ViewHolder and store references to the two children views
// we want to bind data to.
holder = new ViewHolder();
holder.textLine = (TextView) convertView.findViewById(R.id.text);
holder.iconLine = (ImageView) convertView.findViewById(R.id.imagemview);
holder.buttonLine = (Button) convertView.findViewById(R.id.buttonLine);
convertView.setOnClickListener(new OnClickListener() {
public void onClick(View v) { // captura o clique no item da lista.
Toast.makeText(context,
"Click - " + position + " " + item.getTexto(),
Toast.LENGTH_SHORT).show();
}
});
holder.buttonLine.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) { // captura o clique no botao(delete)
// do item dentro da lista.
Toast.makeText(context,
"Delete - " + String.valueOf(position) + " ",
Toast.LENGTH_SHORT).show();
int rowIdatual =0;
try {
///nao esta funcionando
rowIdatual = position+1;
kkk.DeletaItemBanco(rowIdatual);
} catch (Exception e) {
Toast.makeText(context,
"ERRO Delete - " + e.getMessage(),
Toast.LENGTH_SHORT).show();
}
setMessage("Remove OK! " + position);
}
});
convertView.setTag(holder);
// Bind the data efficiently with the holder.
holder.iconLine.setImageResource(item. getIconeRid());
holder.textLine.setText(item.getTexto());
return convertView;
}
protected ItemListView setImageResource(int botaoaddlist) {
// TODO Auto-generated method stub
return null;
}
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}
static class ViewHolder {
TextView textLine;
ImageView iconLine;
Button buttonLine;
}
@Override
public Filter getFilter() {
return null;
}
}
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
0 comentários:
Postar um comentário