Segue. DAO, Adapter e Listar
Listar Clientes
package com.br.aquavendas;
import java.util.List;
import com.br.aquavendas.adapters.ClienteAdapter;
import com.br.aquavendas.dao.ClienteDAO;
import com.br.aquavendas.vo.ClienteVO;
import android.app.Activity;
import android.app.ListActivity;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
public class Listar extends Activity{
ListView ltw;
List<ClienteVO> lista = null;
int idItem = 0;
private static int MENU_EDITAR = 1;
private static int MENU_APAGAR = 2;
private static int MENU_VENDA = 3;
private EditText Procurar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listar);
ltw = (ListView) findViewById(R.id.ltvDados);
ltw.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
// Modo Filtro Lista - Início
Procurar = (EditText) findViewById(R.id.edtProcurar);
Procurar.requestFocus();
Procurar.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Chama método se digitar letra no campo edtProcurar
filtrarLista();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
// Modo Filtro Lista - Fim
final Button btnApagar = (Button) findViewById(R.id.btnApagar);
registerForContextMenu(ltw);
ltw.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
btnApagar.setVisibility(0);
// Toast.makeText(getBaseContext(), "AQUI!", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onResume(){
super.onResume();
ClienteDAO dao = new ClienteDAO(getBaseContext());
lista = dao.getAll();
ltw.setAdapter(new ClienteAdapter(getBaseContext(), lista));
}
public void Apagar_click(View v){
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo){
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
menu.setHeaderTitle(lista.get(info.position).getContato());
menu.add(Menu.NONE, MENU_EDITAR, 0, "Editar");
menu.add(Menu.NONE, MENU_APAGAR, 0, "Apagar");
menu.add(Menu.NONE, MENU_VENDA, 0, "Venda");
}
@Override
public boolean onContextItemSelected(MenuItem item){
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo )item.getMenuInfo();
idItem = lista.get(info.position).getId();
if(item.getItemId() == MENU_EDITAR){
Intent it = new Intent(getBaseContext(), EditarClientes.class);
it.putExtra("codigo", idItem);
startActivity(it);
}else if(item.getItemId() == MENU_APAGAR){
Builder msg = new Builder(Listar.this);
msg.setMessage("Deseja excluir este cliente?");
msg.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ClienteDAO dao = new ClienteDAO(getBaseContext());
ClienteVO cliente = dao.getById(idItem);
if(dao.delete(cliente) == true){
Toast.makeText(getBaseContext(), "Excluído com sucesso!", Toast.LENGTH_LONG).show();
ltw.setAdapter(new ClienteAdapter(getBaseContext(), dao.getAll()));
}
}
});
msg.setNegativeButton("Não", null);
msg.show();
}else if(item.getItemId() == MENU_VENDA){
Intent it = new Intent(getBaseContext(), Vendas.class);
it.putExtra("codigo", idItem);
startActivity(it);
finish();
// Toast.makeText(getBaseContext(), "Venda em desenvolvimento, aguarde!", Toast.LENGTH_LONG).show();
}
// ClienteDAO dao = new ClienteDAO(getBaseContext());
// dao.fecha_banco();
return super.onContextItemSelected(item);
}
// FILTRAR LISTA - COMEÇA AQUI
// FILTRAR LISTVIEW AO DIGITAR LETRA NO CAMPO
private void filtrarLista(){
// LISTAR TODOS OS CLIENTES COM FILTRO
carregarListaClientes_Filtro();
}
// Lista todos os clientes com nome, telefone e celular com o filtro
private void carregarListaClientes_Filtro(){
ClienteDAO dao = new ClienteDAO(getBaseContext());
String nomeString = Procurar.getText().toString();
// Cursor cursor;
// dao.getClientePorNome(nomeString);
// cursor.moveToFirst();
// SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.mostrabanco, cursor, new String[] {SQLConstantes.KEY_RAZAOSOCIALNOME, SQLConstantes.KEY_CELULAR, SQLConstantes.KEY_EMAIL}, new int[] {R.id.lblCampo1,R.id.lblCampo2,R.id.lblCampo3});
//SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.two_line_list_item, cursor, new String[] {SQLConstantes.KEY_NOME, SQLConstantes.KEY_CELULAR}, new int[] {android.R.id.text1, android.R.id.text2});
// setListAdapter(adapter);
ltw.setAdapter(new ClienteAdapter(getBaseContext(), dao.getClientePorNome(nomeString)));
}
// FILTRAR LISTA - ACABA AQUI
}
ClienteDAO
package com.br.aquavendas.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.br.aquavendas.banco.DB;
import com.br.aquavendas.vo.ClienteVO;
public class ClienteDAO {
private static String table_name = "clientes";
private static Context ctx;
private static String[] columns = {"id", "razaosocial_nome", "nome_fantasia", "cnpj_cpf", "ie", "email", "contato", "endereco", "bairro", "cep", "cidade", "telefone", "celular", "data_cadastro"};
public ClienteDAO(Context ctx){
this.ctx = ctx;
}
public boolean insert(ClienteVO vo){
SQLiteDatabase db = new DB(ctx).getWritableDatabase();
ContentValues ctv = new ContentValues();
ctv.put("razaosocial_nome", vo.getRazaosocial_nome());
ctv.put("nome_fantasia", vo.getNome_fantasia());
ctv.put("cnpj_cpf", vo.getCnpj_cpf());
ctv.put("ie", vo.getIe());
ctv.put("email", vo.getEmail());
ctv.put("contato", vo.getContato());
ctv.put("endereco", vo.getEndereco());
ctv.put("bairro", vo.getBairro());
ctv.put("cep", vo.getCep());
ctv.put("cidade", vo.getCidade());
ctv.put("telefone", vo.getTelefone());
ctv.put("celular", vo.getCelular());
ctv.put("data_cadastro", vo.getData_cadastro());
return (db.insert(table_name, null, ctv) > 0);
}
public boolean delete(ClienteVO vo){
SQLiteDatabase db = new DB(ctx).getWritableDatabase();
return (db.delete(table_name, "id=?", new String[]{vo.getId().toString()}) > 0);
}
public boolean update(ClienteVO vo){
SQLiteDatabase db = new DB(ctx).getWritableDatabase();
ContentValues ctv = new ContentValues();
ctv.put("razaosocial_nome", vo.getRazaosocial_nome());
ctv.put("nome_fantasia", vo.getNome_fantasia());
ctv.put("cnpj_cpf", vo.getCnpj_cpf());
ctv.put("ie", vo.getIe());
ctv.put("email", vo.getEmail());
ctv.put("contato", vo.getContato());
ctv.put("endereco", vo.getEndereco());
ctv.put("bairro", vo.getBairro());
ctv.put("cep", vo.getCep());
ctv.put("cidade", vo.getCidade());
ctv.put("telefone", vo.getTelefone());
ctv.put("celular", vo.getCelular());
ctv.put("data_cadastro", vo.getData_cadastro());
return (db.update(table_name, ctv, "id=?", new String[]{vo.getId().toString()}) > 0);
}
public ClienteVO getById(Integer ID){
SQLiteDatabase db = new DB(ctx).getReadableDatabase();
Cursor rs = db.query(table_name, columns, "id=?", new String[]{ID.toString()}, null, null, null);
ClienteVO vo = null;
if(rs.moveToFirst()){
vo = new ClienteVO();
vo.setId(rs.getInt(rs.getColumnIndex("id")));
vo.setRazaosocial_nome(rs.getString(rs.getColumnIndex("razaosocial_nome")));
vo.setNome_fantasia(rs.getString(rs.getColumnIndex("nome_fantasia")));
vo.setCnpj_cpf(rs.getString(rs.getColumnIndex("cnpj_cpf")));
vo.setIe(rs.getString(rs.getColumnIndex("ie")));
vo.setEmail(rs.getString(rs.getColumnIndex("email")));
vo.setContato(rs.getString(rs.getColumnIndex("contato")));
vo.setEndereco(rs.getString(rs.getColumnIndex("endereco")));
vo.setBairro(rs.getString(rs.getColumnIndex("bairro")));
vo.setCep(rs.getString(rs.getColumnIndex("cep")));
vo.setCidade(rs.getString(rs.getColumnIndex("cidade")));
vo.setTelefone(rs.getString(rs.getColumnIndex("telefone")));
vo.setCelular(rs.getString(rs.getColumnIndex("celular")));
vo.setData_cadastro(rs.getString(rs.getColumnIndex("data_cadastro")));
}
rs.close();
return vo;
}
public List<ClienteVO> getAll(){
SQLiteDatabase db = new DB(ctx).getReadableDatabase();
Cursor rs = db.rawQuery("SELECT * FROM clientes", null);
List<ClienteVO> lista = new ArrayList<ClienteVO>();
while(rs.moveToNext()){
ClienteVO vo = new ClienteVO(rs.getInt(rs.getColumnIndex("id")),rs.getString(rs.getColumnIndex("razaosocial_nome")),rs.getString(rs.getColumnIndex("nome_fantasia")),rs.getString(rs.getColumnIndex("cnpj_cpf")),rs.getString(rs.getColumnIndex("ie")),rs.getString(rs.getColumnIndex("email")),rs.getString(rs.getColumnIndex("contato")),rs.getString(rs.getColumnIndex("endereco")),rs.getString(rs.getColumnIndex("bairro")),rs.getString(rs.getColumnIndex("cep")),rs.getString(rs.getColumnIndex("cidade")),rs.getString(rs.getColumnIndex("telefone")),rs.getString(rs.getColumnIndex("celular")),rs.getString(rs.getColumnIndex("data_cadastro")));
lista.add(vo);
}
// rs.close();
return lista;
}
// CLIENTE POR NOME
public List<ClienteVO> getClientePorNome(String nomeString){
SQLiteDatabase db = new DB(ctx).getReadableDatabase();
String[] selectionArgs = {nomeString + "%"};
Cursor rs = db.rawQuery("SELECT * FROM clientes WHERE razaosocial_nome like ?", selectionArgs);
List<ClienteVO> lista = new ArrayList<ClienteVO>();
while (rs.moveToNext()) {
ClienteVO vo = new ClienteVO(rs.getInt(rs.getColumnIndex("id")),rs.getString(rs.getColumnIndex("razaosocial_nome")),rs.getString(rs.getColumnIndex("nome_fantasia")),rs.getString(rs.getColumnIndex("cnpj_cpf")),rs.getString(rs.getColumnIndex("ie")),rs.getString(rs.getColumnIndex("email")),rs.getString(rs.getColumnIndex("contato")),rs.getString(rs.getColumnIndex("endereco")),rs.getString(rs.getColumnIndex("bairro")),rs.getString(rs.getColumnIndex("cep")),rs.getString(rs.getColumnIndex("cidade")),rs.getString(rs.getColumnIndex("telefone")),rs.getString(rs.getColumnIndex("celular")),rs.getString(rs.getColumnIndex("data_cadastro")));
lista.add(vo);
}
return lista;
}
public void fecha_banco(){
SQLiteDatabase db = new DB(ctx).getWritableDatabase();
db.close();
}
}
ClienteAdaptert
package com.br.aquavendas.adapters;
import java.util.List;
import com.br.aquavendas.vo.ClienteVO;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ClienteAdapter extends BaseAdapter{
private Context ctx;
private List<ClienteVO> lista;
public ClienteAdapter(Context ctx, List<ClienteVO> lista){
this.ctx = ctx;
this.lista = lista;
}
@Override
public int getCount() {
return lista.size();
}
@Override
public Object getItem(int position) {
return lista.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
ClienteVO vo = (ClienteVO)getItem(position);
LayoutInflater layout = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = layout.inflate(android.R.layout.simple_list_item_checked, null);
/*
TextView txtID = (TextView) v.findViewById(com.br.aquavendas.R.id.txtId);
txtID.setText(vo.getId().toString());
*/
TextView txtContato = (TextView) v.findViewById(android.R.id.text1);
txtContato.setText(vo.getContato());
return v;
}
}